使用jwt_decode解析令牌报错:Uncaught ReferenceError: jwt_decode is not defined
解决"jwt_decode is not defined"错误的方案
1. 检查脚本加载顺序
你的profile.js必须在jwt-decode的CDN脚本之后加载,否则执行到jwt_decode(authToken)时,库还未完成初始化。
正确的HTML脚本引入顺序示例:
<script src="https://cdn.jsdelivr.net/npm/jwt-decode@3.1.2/dist/jwt-decode.min.js"></script> <script src="./profile.js"></script> <!-- 确保此脚本在CDN引入之后 -->
2. 显式调用全局作用域变量
部分场景下浏览器的作用域隔离会导致无法直接访问jwt_decode,可以尝试通过window对象显式调用:
const authToken = localStorage.getItem("token"); // 先判断令牌是否存在,避免后续额外报错 if (authToken) { const decodedToken = window.jwt_decode(authToken); const user_id = decodedToken.user_id; fetchMethod(currentUrl + `/api/users/${user_id}`, callback, "GET"); } else { console.log("未找到登录令牌"); }
3. 验证CDN资源加载状态
打开浏览器开发者工具的网络标签,刷新页面后检查jwt-decode的CDN请求是否返回200状态码,确认资源未被拦截或加载失败。
内容的提问来源于stack exchange,提问作者jianping
相关产品推荐
相关产品推荐

