axios怎么在不同情况下传不同的centent-type
request拦截里统一用了application/x-www-form-urlencoded,但后端有个需求就是更具不同情况使用不同的content
分别是'application/x-www-form-urlencoded' & 'application/json',请问怎么配置呢
'
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
config.transformRequest = [function (data) {
let src = ''
let flag = ''
for (const item in data) {
src += flag + encodeURIComponent(item) + '=' + encodeURIComponent(data[item])
flag = '&'
}
return src
}]
...
...
...
}
回答:
方案很多,这里给出一种:
第一,不要用全局拦截器。
第二,实例化多个 AxiosInstance,每个实例用单独的拦截器,根据接口不同使用不同的实例。
回答:
去掉拦截器里设置 headers['Content-Type']
的部分,设置默认的 headers
为 application/json
:
axios.defaults.headers['Content-Type'] = 'application/json';
然后需要用到 application/x-www-form-urlencoded
时,在请求的 config
里设置 headers
, eg:
axios.post('/user/12345', {name: 'new name'}, { headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
以上是 axios怎么在不同情况下传不同的centent-type 的全部内容, 来源链接: utcz.com/p/935722.html