1. 问题现象与初步排查
登录系统后,页面图片和头像无法正常显示,但控制台并未报错。通过Chrome开发者工具检查网络请求发现,图片资源的请求返回状态码为401(Unauthorized)。这显然是一个权限验证失败的问题,但奇怪的是登录流程本身是正常的,token也能正确存储在本地缓存中。
关键排查点:当遇到资源加载问题时,首先应该检查网络请求的状态码和响应内容,而不是直接怀疑前端渲染问题。
在Vue.js前端代码中,图片加载使用的是标准的img标签,src属性指向后端接口(例如/files/avatar/123.jpg)。理论上这种静态资源请求应该不需要携带token,但实际情况却是请求被拦截了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 后端拦截机制分析
系统采用JWT(JSON Web Token)作为鉴权方案,通过拦截器对所有API请求进行验证。查看Spring Boot的后端代码,发现JWT拦截器的配置如下:
java复制@Configuration
public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getHeader("Authorization");
if (StringUtils.isEmpty(token)) {
throw new UnauthorizedException("Token不能为空"); // 问题出在这一行
}
// ...其他验证逻辑
return true;
}
}
同时,在WebMvcConfigurer的配置中:
java复制@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInt
