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
}]
...
...
...
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
方案很多,这里给出一种:
第一,不要用全局拦截器。
第二,实例化多个 AxiosInstance,每个实例用单独的拦截器,根据接口不同使用不同的实例。
去掉拦截器里设置
headers['Content-Type']
的部分,设置默认的headers
为application/json
:然后需要用到
application/x-www-form-urlencoded
时,在请求的config
里设置headers
, eg: