axios设置请求头,删除请求头

axios设置请求头_删除请求头

首先描述下我在项目中的应用场景:

因为项目中用户登录后后台会返回该用户对应的token,然后以后再请求数据时都需要再请求头中携带这个token。但但但,但是,登录也是个接口,我发现登录过后再退出登录后,在调用登录的这个接口,请求头中还是会带上token,这就不对了。后台这时就会报签名错误,(但其实就是这个缓存的token,和要登录的这个用户的token不一致导致的。或者是相同的用户,但是缓存的token已经失效了。)

补充一下前提条件:我的请求方式是,封装了两个请求方法,一个是登录后携带token请求数据交互的,一个只是登录时使用。

下面贴出代码:

请求数据的请求:

import $axios from 'axios';


if (type == 'POSTBM') {
//此处就是我设置请求头的地方
      $axios.defaults.headers.common['Authorization'] = `zjxnjz_${JSON.parse(localStorage.getItem("ms_user")).authToken}`;
      let dataValue = data || '';
      
      let promise = new Promise(function (resolve, reject) {
        
        $axios
          .post(url,dataValue)
          .then(res => {
            // console.log(data)
            if (res.data.code == 0) {
              if (res.data.data) {
                resolve(res.data.data)
              } else if (res.data) {
                resolve(res.data)
              }
            }else{
              // console.log(data)
              // console.log(url)
              reject(res.data)
              
            }
          })
          .catch(err => {
            //console.log("走了错误");
            reject(err)
          });
      });
      return promise
    }

登录时的请求

if (type == 'POST_RSA') {
      
     
      let dataValue = data || '';
     
      let promise = new Promise(function (resolve, reject) {
       
        $axios
          .post(url, dataValue),{
            transformRequest:[function (data1,headers){
              //这个请求不需要请求头(在此处删除,上方设置的请求头。)
              if(headers.common.Authorization){
               delete headers.common.Authorization;
              }
              return data1;
            }]
          })
          .then(res => {
            // console.log(data)
            if (res.data.code == 0) {
              if (res.data.data) {
                resolve(res.data.data)
              } else if (res.data) {
                resolve(res.data)
              }
            }else{
              // console.log(data)
              // console.log(url)
              resolve(res.data)
    
            }
          })
          .catch(err => {
            // console.log("走了错误");
            reject(err)
          });
      });
      return promise
    }

注:这里我想,应该是在给axios设置完请求头,应该是全局都会一直使用吧,直到这个请求头修改或者被删除吧。

参考文档:axios设置的请求头应该如何删除

axios 动态删除请求头

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值