当前位置: 首页 > article >正文

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

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

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

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

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

        解决办法:

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

if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
            return false; // 不继续处理后续逻辑
        }


http://www.kler.cn/a/411625.html

相关文章:

  • 【ArcGISPro】Sentinel-2数据处理
  • 【Leetcode 每日一题】146. LRU 缓存(c++)
  • Redis-09 SpringBoot集成Redis
  • 微信小程序加载商品首页数据时,页码没有更新,老是page=1。
  • 网络爬虫——分布式爬虫架构
  • Python爬取豆瓣电影全部分类数据并存入数据库
  • 快速理解微服务中Ribbon的概念
  • 01.Django快速入门
  • Redis核心类型----有序集合
  • 案例分析:嵌入式边缘计算机ARMxy在工商储能柜新能源应用
  • 租赁小程序|租赁系统搭建|租赁系统需求
  • React-useState的使用
  • redmi 12c 刷机
  • 【Linux】vim的使用
  • cuda conda yolov11 环境搭建
  • SSM框架整合
  • C#中面试的常见问题003
  • 11.19c++面向对象+单例模式
  • jupyter notebook的 markdown相关技巧
  • Vue 3 自定义插件开发
  • Http 响应协议
  • 【已解决】ensp启动报错“启动设备AR1失败”
  • 数字ic设计bug:寄存器翻转错误
  • Unity项目性能优化列表
  • Java基础——(一)Java概述
  • Linux——基础命令(1)