axios 再次封装之后无变化,如何解决?

发布于 2022-09-11 22:54:03 字数 1027 浏览 11 评论 0

下面是我在一个js文件写的拦截请求

import axios from 'axios'
setTimeout(()=>{
    axios.interceptors.request.use(config => {
        // 请求时是否有统一登录token,有的话存储
        config.headers.token = axios.defaults.token
        console.log(axios.defaults.token, '插件');
        return config
    })
},0)

然后我想在用户点击的时候重新修改拦截请求

    axios.interceptors.request.use(config => {
        // 请求时是否有统一登录token,有的话存储
        config.headers.token = ‘123’
        return config
    })

可是在项目中没有体现出我后改的拦截好像还是走的第一次,如何解决该问题,这的问题又在哪里

下面是大概执行流程代码

import axios from 'axios'
setTimeout(()=>{
    axios.interceptors.request.use(config => {
        // 请求时是否有统一登录token,有的话存储
        config.headers.token = axios.defaults.token
        console.log(axios.defaults.token, '插件');
        return config
    })
},0)
el.onclick = function () {
  axios.interceptors.request.use(config => {
    config.headers.token = 'wl'
    return config
  })
}
export default axios;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东风软 2022-09-18 22:54:03

先移除原来的拦截器

const myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);

或者两种请求使用不同的实例

const instance = axios.create();
instance.interceptors.request.use(config => {/*...*/});

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文