| | |
| | | |
| | | @Override |
| | | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
| | | System.out.println("=== 拦截器收到请求 ==="); |
| | | System.out.println("方法: " + request.getMethod()); |
| | | System.out.println("URI: " + request.getRequestURI()); |
| | | |
| | | // 关键修复:必须放行 OPTIONS 预检请求 |
| | | if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { |
| | | System.out.println("✅ 放行 OPTIONS 预检请求"); |
| | | // 手动设置 CORS 头 |
| | | response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8080"); |
| | | response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); |
| | | response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Token, token"); |
| | | response.setHeader("Access-Control-Allow-Credentials", "true"); |
| | | response.setStatus(HttpServletResponse.SC_OK); |
| | | return false; // OPTIONS 请求不需要继续后续处理 |
| | | } |
| | | cors(response); |
| | | if (handler instanceof org.springframework.web.servlet.resource.ResourceHttpRequestHandler) { |
| | | return true; |