前后端分离,后端拦截器无法获得前端请求的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; // 不继续处理后续逻辑
        }
相关推荐
京东云开发者11 分钟前
正式上线!京东云AI智能渗透测试服务
前端
AprChell15 分钟前
低代码设计器和低代码设计引擎架构综述
前端·vue.js·低代码
Hilaku20 分钟前
Node.js 还能再战十年?给你一个不换引擎的理由
前端·javascript·程序员
用户2986985301423 分钟前
Word 文档字符级格式化:Java 实现方案详解
java·后端
颜进强29 分钟前
AI性能参数-截断、延迟与流式输出
前端·后端·ai编程
spmcor36 分钟前
React 架构师之路:Next.js 全栈革命(第八篇)
前端·react.js
英勇无比的消炎药36 分钟前
TinyRobot 源码深度分析:OpenTiny 的 AI 对话组件库
前端·vue.js·github
假如让我当三天老蒯37 分钟前
React基础、进阶(学习用)
前端·react.js·面试
风骏时光牛马40 分钟前
HTML十大经典实战代码案例合集
前端
weedsfly41 分钟前
前端必知必会:从 IIFE 到 ESM,模块化到底在解决什么?
前端·javascript