axios发送post请求,默认的content-type

Posted 华迪半云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(‘&‘));
}
 
这样就可以了














以上是关于axios发送post请求,默认的content-type的主要内容,如果未能解决你的问题,请参考以下文章

如何从使用 axios 发送的 POST 请求中获取 Content-Length 标头?

关于请求头

vue中axios的基本配置

axios post提交的Content-Type

axios如何一次性发送多个网络请求?

axios的post请求方法---以Vue示例