排查:axios请求拦截器axios.interceptors.request.use里undefined报错

目录

  • 1. 起因
  • 2. 可能问题
    • 2.1 老版本浏览器不支持promise?
    • 2.2 老版本浏览器不支持replaceAll?
  • 3. 总结

1. 起因

一开始没有用上token验证,代码跑的好好的。
然后利用axios的请求拦截器加上token后,在最新的或者说较新的chrome里,都没问题,但是比较老旧的比如chrome59版本的浏览器就直接catch到报错,但是报错内容是空的!!!undefined报错!!
期间用时至少6小时才排查出来,简直了。
下面这段代码看起来有问题吗?
排查:axios请求拦截器axios.interceptors.request.use里undefined报错_第1张图片

2. 可能问题

2.1 老版本浏览器不支持promise?

一度差点以为这就是答案,因为用手动加token的axios来访问就是ok的。但只要用上拦截器就是catch到undefined报错,不理解
加插件,让不支持promise的也支持,也是报错
只能一行代码一行代码的试
最后发现,其实promise是支持的,那就奇怪了

2.2 老版本浏览器不支持replaceAll?

YES!!!!
请看下图,假如在框里用了replaceAll,
排查:axios请求拦截器axios.interceptors.request.use里undefined报错_第2张图片
排查:axios请求拦截器axios.interceptors.request.use里undefined报错_第3张图片
replaceAll要2020年后的chrome浏览器才支持!
至此,问题发现了,那就好解决了,一开始那个undefined,真的不知道哪里出的问题了。

3. 总结

用时6小时+,有时候不合预期的代码表现,肯定是有问题的,但就是报错没报出来,这时候真的就只能保持住耐心一点一点试了,等定位到了,就哦原来是这样的,但中间真的就浪费太多时间精力了。
写个文章吐槽一下~

你可能感兴趣的:(前端,axios,undefined)