前后端分离,后端拦截器无法获得前端请求的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; // 不继续处理后续逻辑
        }
相关推荐
遇见你...10 小时前
TypeScript
前端·javascript·typescript
Highcharts.js11 小时前
Highcharts Grid 中文站正式上线:表格数据处理的全新选择
前端·javascript·数据库·表格数据·highcharts·可视化图表·企业级图表
chools14 小时前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
懂懂tty14 小时前
CRA 迁移 Rspack(实战)
前端·架构
李白你好14 小时前
TongWeb EJB 反序列化生成工具(Java-Chain 插件)
java·安全
小码哥_常15 小时前
Kotlin 助力 Android 启动“大提速”
前端
U盘失踪了15 小时前
Java 的 JAR 是什么?
java·jar
GreenTea15 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
Jagger_16 小时前
能不能别再弄低代码害人了
前端
朦胧之16 小时前
AI 编程开发思维
前端·后端·ai编程