前后端分离,后端拦截器无法获得前端请求的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; // 不继续处理后续逻辑
        }
相关推荐
MC丶科7 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
千码君20167 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
夜白宋8 小时前
【word多文档docx合并】
java·word
@yanyu6669 小时前
idea中配置tomcat
java·mysql·tomcat
2501_916766549 小时前
【项目部署】JavaWeb、MavenJavaWeb项目部署至 Tomcat 的实现方式
java·tomcat
RoboWizard9 小时前
扩容刚需 金士顿新款Canvas Plus存储卡
java·spring·缓存·电脑·金士顿
lang201509289 小时前
Spring Boot 入门:5分钟搭建Hello World
java·spring boot·后端
lijun_xiao20099 小时前
前端最新Vue2+Vue3基础入门到实战项目全套教程
前端
失散139 小时前
分布式专题——47 ElasticSearch搜索相关性详解
java·分布式·elasticsearch·架构
serve the people9 小时前
LangChain 表达式语言核心组合:Prompt + LLM + OutputParser
java·langchain·prompt