axios怎么在不同情况下传不同的centent-type

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']的部分,设置默认的 headersapplication/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

回到顶部