報錯截圖:
導致原因:
vue中axios請求方式,delete和post,put在傳值上有區別, post 和 put 有三個參數,url , data , 和 config 。所以在使用這兩個時,可以寫成 axios.post(url,{param:xx}) , axios.put(url,{param:xx}), 但是delete只有兩個參數: url 和 config ,data在config中,所以需要寫成 axios.delete(url,{data:{param:xx}}) 。
這個是在封裝請求方法里面處理的,之前代碼如下:
export function delete(url,params){ return new Promise((resolve,reject)=>{ axios.delete(url,qs.stringify(params)).then(response=>{ //put封裝和這個一樣 resolve(response); },err=>{ reject(err); }).catch((error)=>{ reject(error); }) }) }
改過之后,代碼如下:
export function delete(url,params){ return new Promise((resolve,reject)=>{ axios.delete(url,params).then(response=>{ //這里傳遞的參數不做處理 resolve(response); },err=>{ reject(err); }).catch((error)=>{ reject(error); }) }) }
使用方法:
封裝接口,例如: const delApi = value => 封裝請求方法文件的名字.delete(url+'api/xxx/xxx',value);
調用:
let data = { param: param}; //傳遞的參數形式
封裝接口的文件名字.delApi({data:data}).then(res=>{
//請求成功返回的數據
}).catch(err=>{})
相關網址: https://blog.csdn.net/w_e_i_1201/article/details/86006816
以及關於axios 中文文檔詳解網址: https://www.jb51.net/article/123485.htm