AJAX请求已携带Authorization头但JWT Token仍无法生效问题咨询
问题修复方案
核心错误点
JWT Bearer 认证规范要求请求头中Bearer标识和实际Token值之间必须保留一个半角空格,你在home.php的请求头配置中直接拼接了二者,没有加空格:
// 错误写法 "Authorization": "Bearer" + sessionStorage.getItem("token")
拼接后的请求头值为Bearerxxxxxx.xxxx.xxxx格式,服务端JWT解析逻辑无法正确拆分出Token,因此返回找不到Authorization Token的错误。
修复方法
直接在Bearer后面加一个半角空格即可:
// 正确写法 "Authorization": "Bearer " + sessionStorage.getItem("token")
额外排查项(改完仍报错可检查)
- 在home.php的AJAX请求执行前加一行
console.log(sessionStorage.getItem("token")),确认登录后Token确实被正确存入sessionStorage,避免登录接口返回Token为空、或者存储失败的问题 - 确认服务端JWT校验逻辑,确实是从
Authorization请求头中提取Bearer格式的Token,而非要求用自定义头或者URL参数传递Token
内容的提问来源于stack exchange,提问作者wonderCode
相关产品推荐
相关产品推荐

