前后端分离,后端拦截器无法获得前端请求的token

首先需要了解两个知识点:

跨域是指在浏览器中,一个网页试图请求另一个域(协议、域名或端口不同 )的资源时,所涉及的安全机制。在Web开发中,一般来说,由于安全性原因,浏览器会阻止一个域访问另一个域的数据,这种限制称为同源策略(Same-Origin Policy)。

进行跨域请求时,浏览器会先发送一个OPTIONS请求,以确认目标服务器允许特定的请求方法和头。

关键来了,这个自动发送的options请求,是不会带有我们的token的。而路径却是跟我们实际请求一致,因此同样会被拦截器拦截。所以即便我们设置了cros的config,options也会因为没有token而被拒绝,而实际带有token的请求却因为options被拒绝而没有发送。

解决办法:

在拦截器中加入以下代码,在识别到是OPTIONS请求时通过

java 复制代码
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
            return false; // 不继续处理后续逻辑
        }
相关推荐
星环科技1 分钟前
数据标准Agent ,让企业数据说同一种语言
java·开发语言·前端
橘子星6 分钟前
深入理解 AJAX 中的 JSON 序列化与 JS 异步处理
前端·javascript·后端
SimonKing6 分钟前
Qoder 提供免费 Qwen3.7-Max,无需订阅
java·后端·程序员
旧曲重听110 分钟前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
Kapaseker11 分钟前
我找到了最适合程序员的 PPT 工具 — Slidev
前端
dadaobusi15 分钟前
RISC-V 虚拟化:虚拟机TLB处理
java·开发语言
程序猿乐锅26 分钟前
【 苍穹外卖day03 | 菜品管理 】
java·开发语言·数据库·mysql
雾削木27 分钟前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件
写点啥呢28 分钟前
GLM HUD用量实时显示
claude·token·hud·glm
凤山老林29 分钟前
JDK 11 升级至 JDK 17
java·开发语言·jdk17·jdk升级·jdk11