vue封装的axios拦截器里怎么获取当前的url参数?
现在我封装了个axios拦截器,我每次请求接口都需要url里的user_id参数信息,所以想封装到axios拦截器里,但是在拦截器里this.$route.query获取不到报错,该怎么获取url里的参数?
下边这种写法报错
const service=axios.create({
timeout:5000
});
service.interceptors.request.use(
config=>{
console.log('config',config);
config.data['uid']=this.$route.query.uid;
return config
},
error => {
console.log(error);
return Promise.reject(error);
}
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
竟然在回答的时候修改了问题。。。
router对象不是通过vue注册进去的吗,这部分代码可能在main.js里,那么你的axios的拦截器也在这里设置就可以直接访问route对象拿到了
方案一:自己在自定义的js里写一个解析的方法,如:
方案二:通过事件监听传输路由对象,如:
方案三:放到全局变量上共享。
封装axios请求文件,返回一个带参函数,
main.js
里导入并执行传入vm
, 正常用vm.$route
处理,单独处理的话可以考虑
new URL
main.js
request.js