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

在全局封装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
赋不上值是咋回事。。

阅读 181
评论
    4 个回答
    • 143

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

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

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

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

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

      • 4
      • 新人请关照

      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)
          }
            撰写回答

            登录后参与交流、获取后续更新提醒