首页 > 解决方案 > Axios 获取请求不接受 '[]' 作为参数值

问题描述

我们正在将现有的 jQuery Ajax 调用迁移到 Vue Axios。当我们添加任何具有 [] 字符的参数时,请求将无法调用后端服务,如果我们排除具有 [] 字符的参数,则它是成功的。

网络选项卡 中现有Ajax URL 的成功请求 URL: http://localhost:8080/app_Server/FetchData?userId=alex&queryListStr=%5B%5D

失败请求 url 哪个是网络选项卡 中的Axios URL: http://localhost:8080/app_Server/FetchData?userId=alex&queryListStr=[]

我可以看到 Ajax 编码 [] 字符,但在 Axios 中没有。

我正在尝试在我的 GET 请求中传递 URL 参数中的参数,如下所示

public async fetchRows(data:any){
        try {
            const url="http://localhost:8080/app_Server/FetchData";
            const resp = await axios.get(url, {  
                params: {                      
                  userId : "alex",                
                  querytr :"[]"                               
                }
            });        
            console.log(`this is the response: ${resp}`);            
          } catch (e) {
            console.log(`Error! ${e.message}`);
          };        
    }

参数queryStr有字符"[]"。如果我们在 jquery $.getJSON() API 中传递这些参数,则相同的参数将起作用。发出请求时参数编码是否有问题。Axios 是否忽略 [] 字符进行编码。

标签: vuejs2axios

解决方案


推荐阅读