无法使用Cypress拦截请求
拦截带Bearer令牌的请求失效排查方案
检查请求头大小写匹配
不少场景下请求头会出现大小写不一致的情况(比如authorization小写),如果你的代码硬匹配Authorization就会抓不到。建议用框架提供的忽略大小写的获取方法,比如request.headers.get('authorization'),或者统一转成小写后再判断。确认拦截器执行时机与优先级
要是用的前端拦截器(比如Axios),得保证拦截器是在请求发送前正确挂载的,别被后续的拦截器配置覆盖。比如Axios里要把拦截逻辑写在axios.interceptors.request.use()里,而且不要在之后重置拦截器实例。修正Bearer令牌的匹配逻辑
注意Bearer和令牌之间的空格!有些请求里可能少了这个空格,或者Bearer写成了小写。用正则来做宽松匹配更靠谱:const authHeader = request.headers.get('authorization'); if (authHeader && /^Bearer\s+.+$/i.test(authHeader)) { // 加i忽略大小写 const token = authHeader.split(' ')[1]; // 后续处理逻辑 }排查请求是否绕过拦截器
跨域预检的OPTIONS请求、或者你配置了白名单的请求,通常会跳过拦截器。检查你的拦截器规则,是不是把目标请求误放到了白名单里,或者OPTIONS请求干扰了判断。验证拦截逻辑的执行路径
在拦截器里加个日志输出,比如console.log('拦截器触发', request.headers),看看目标请求到底有没有进入拦截逻辑,是不是因为条件判断错误直接跳过了处理。
内容的提问来源于stack exchange,提问作者Edward K
相关产品推荐
相关产品推荐

