vue axios 在设置了全局请求头下,单一请求更换不了请求头

wswhy3
  • 153

在全局封装axios文件中写过 一个全局的
axios.defaults.headers.post['Content-Type'] = 'application/json;'

但是有一个上传文件的请求需要修改一下请求头 就是改不过来

this.axios({

 url:'/user/test',

 method: 'post',

 params: {video: formData},

 headers:{

    'Content-Type': 'multipart/form-data'

 } 

}).then(respanse=>{

console.log(respanse);

})

百度了半天确实这么写的 我这是肿么肥四

image.png
然后console config
image.png
赋不上值是咋回事。。

评论
阅读 653
4 个回答
✓ 已被采纳

自己回答一下吧 有一个核心错误问题

帮助我的朋友说的都没有错

发送请求的时候 如果data里是undefined的话

response里会把headers会被浏览器默认成application/json
request里headers会是undefined 或者 是空

由此可以根据问题 去分析 ajax的属性是不是没有按照后台的要求来传递。。。

Unable to set or override global headers
看iss似乎不推荐用这种方式。

如果不想更改的话你可以尝试下

axios.defaults.headers = xxxx
网络请求
    .success(()=>{
        axios.defaults.headers = 还原
    })

image.png
在你封装的 拦截这里修改

可以封装一下axios,伪代码如下:

function request(path, param, method){
    const config = {
        ...param,
        headers: {'Content-Type' : 'multipart/form-data'}
    }
    if (//...是上传文件){
        config.headers = //...
    }
    return axios(config)
}
宣传栏