axios發送post請求,默認的content-type


當參數為對象時,參數在request payload里,content-type為application/json;charset=UTF-8,這樣springmvc是不能通過

request.getParameterMap();獲取的
解決辦法一,
參數通過
URLSearchParams設置
let param = new URLSearchParams(); param.append("username", "admin"); param.append("password", "admin");

方法二,
修改axios源碼
-axios
--lib
---defaults.js
defaults.js文件里transformRequest方法中
if (utils.isObject(data)) {
//setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
//return JSON.stringify(data);
setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
let keys2 = Object.keys(data);
/* 這里就是把json變成url形式,並進行encode */
//console.log('key====', keys2)
return encodeURI(keys2.map(name => `${name}=${data[name]}`).join('&'));
}
 
這樣就可以了




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM