10.7 解决页面刷新时401
一.现象
在成功登录后在任意界面刷新后显示401
二.原因
浏览器地址栏刷新 /customer/pay,这是浏览器发起的原生 GET 请求,不是 axios 请求,axios 请求拦截器只会给 axios 请求加 token,不会干预浏览器原生地址栏请求,因此后端返回401
三.解决
浏览器原生页面请求(F5 刷新、地址栏回车)的请求头 Accept 包含 text/html,所以仅需要在vite转发过程中插入钩子函数bypass,判断请求头是否有accept的text/html
bypass(req) {
if (req.headers.accept && req.headers.accept.includes('text/html')) {
return '/index.html'
}
}

浙公网安备 33010602011771号