vue axios设置请求头

2,054 阅读1分钟

全局设置axios 默认值

axios.defaults.headers.post['Content-Type']

单独给接口设置headers

axios({
        method: "get",
        url: "/api/Department/GetOrgCode",
        headers: {'this-is-id': true},
}).then(res=>{
	console.log(res)
}).catch(err=>{
	console.log(err)
})

给满足条件的接口设置heaers (在axios拦截器中添加headers 属性)

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么

    // 调用腾讯云SDK时请求头有限制,不能设置headers
    if(!config.url.includes('vod2.qcloud.com')){
        config.headers.post['ignore_verify_bind_org'] = true;
        config.headers.get['ignore_verify_bind_org'] = true;
    }
    // 表示跨域请求时是否需要使用凭证默认false
    config.withCredentials = true;
    
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
  
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if (response.status == 401 || response.status == 302) {
        location.href = "#/login";
        return response.data;
    }
    return response;
  }, function (error) {
    // 对响应错误做点什么
    let msg = error.response.data.Error || '请求失败,请重试!'
    ElementUI.Message({
        showClose: true,
        message: msg,
        type: "error",
        duration: 2000
    });
    return Promise.reject(error);
  });