夕阳丶无限好 2020-01-03 11:25 采纳率: 0%
浏览 1108

vue中interceptors拦截器中添加的请求头被参数替换怎么办

图片说明
本来是这样的,一开始的请求头
图片说明
这个是浏览器url地址的的请求参数
图片说明
然后token就被替换了!

  • 写回答

1条回答

  • lshen01 2023-03-17 09:42
    关注

    参考GPT和自己的思路:

    根据你提供的信息,可以看出你的请求头中使用了一个叫"Authorization"的参数来传递token值。而在浏览器地址栏中,请求参数中也使用了一个名为"token"的参数。这两者之间的差异,导致了拦截器中添加的请求头被替换掉了。

    解决这个问题的方法很简单,你只需要在拦截器中给"Authorization"参数的值设置成请求参数中的"token"参数即可。具体的代码如下:

    axios.interceptors.request.use(config => {
      const token = getUrlParam('token') // 获取浏览器地址栏中的"token"参数
      if (token) {
        config.headers.Authorization = `Bearer ${token}` // 给"Authorization"参数设置token值
      }
      return config
    })
    
    function getUrlParam(name) {
      const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
      const r = window.location.search.substr(1).match(reg)
      if (r != null) {
        return unescape(r[2])
      }
      return null
    }
    

    其中,getUrlParam函数是用来从浏览器地址栏中解析出参数的函数。使用这个函数可以获取到"token"参数的值,然后把它赋值给"Authorization"参数的值即可。需要注意的是,"Authorization"参数的值需要添加"Bearer "前缀才能够被服务器正确识别。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误