为什么前端传了token,后端一直获取不到?一直报跨域错误?

这是我的前端代码

这是我的后端拦截器

那就需要了解一下 预检请求

对于非简单请求(如PUT、DELETE或包含自定义HTTP头的请求),浏览器会先发送一个OPTIONS请求到目标服务器,询问是否允许该跨域请求。这个过程称为预检请求。

当options请求到达我服务器时,被拦截器拦住了,获取不到跨域的规则。所以浏览器也不会发送实际的请求。那么一共有两种解决办法

1、过滤器
package com.book.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;@Configuration
public class GlobalCorsConfig {@Beanpublic CorsFilter corsFilter() {//1. 添加 CORS配置信息CorsConfiguration config = new CorsConfiguration();// 放行哪些原始域config.addAllowedOrigin("http://localhost:8080");// 是否发送 Cookieconfig.setAllowCredentials(true);// 放行哪些请求方式config.addAllowedMethod("*");// 放行哪些原始请求头部信息config.addAllowedHeader("*");// 暴露哪些头部信息config.addExposedHeader("*");//2. 添加映射路径UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();corsConfigurationSource.registerCorsConfiguration("/**",config);//3. 返回新的CorsFilterreturn new CorsFilter(corsConfigurationSource);}}
2、拦截器中放行options请求(preHandle方法中)
//判断是否需要拦截//拦截器取到请求先进行判断,如果是OPTIONS请求,则放行if("OPTIONS".equals(request.getMethod().toUpperCase())) {System.out.println("Method:OPTIONS");return true;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【爬虫实战】今日头条-关键词搜索-快速整理出1w条数据

快速整理头条关键词数据工具,学习效率妥妥翻倍!!!本案例源码仅供学习参考! 项目功能简介: 1.可视化式配置; 2.任意关键词; 3.自动翻页; 4.支持指定最大翻页页码&…

Foxit Reader高亮与下划线全指南:标记文档的大师级技巧

🖍️ Foxit Reader高亮与下划线全指南:标记文档的大师级技巧 Foxit Reader是一款功能强大的PDF阅读器,它提供了一系列的注释工具,包括高亮和下划线,以增强用户的阅读体验和文档交互性。本文将详细介绍如何在Foxit Rea…

IP地址网络号:解读其构成与重要性

在数字化时代,IP地址已成为我们网络生活不可或缺的一部分。每个设备在网络中都有一个独特的IP地址,这个地址由网络号和主机号组成,它们共同构成了我们的网络身份。其中,网络号的作用尤为重要,它决定了设备所连接的网络…

k8s特殊节点,特殊应用,节点只部署该应用,应用只部署在该节点。

在 Kubernetes 集群中,你可以通过使用 nodeSelector、nodeAffinity 和 taints 与 tolerations 来将一个 deployment 部署到指定的节点上,并确保该节点上只运行此 deployment。以下是具体步骤: 给目标节点打标签: 选择一个节点&…

【算法专题--栈】用栈实现队列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双栈 模拟 队列 🥝栈 和 队列 的特性 🍍具体思路 🍍案例图解 四、总结与提炼 五、共勉 一、前言 用栈实现队列 这道题,可以说是--栈专题--,最经典的一道题&…

管理上的一些思考

1 前言 管理可分为自我管理、平级管理、向下管理和向上管理。 顾名思义,自我管理就是对自己工作、生活等各方面的规划和执行,不涉及与其他人互动、配合等。我们设定人生目标、年度计划、月计划等,都可以认为是自我管理。《增广贤文》有段很…

点云处理实操 三维重建(一)

目录 一、什么是三维重建 二、三维重建技术路线 三、PCL在三维重建中的地位 一、什么是三维重建 三维重建(3D Reconstruction)是一种计算机图形学和计算机视觉技术,用于从二维图像或其他数据源重建物体或场景的三维模型。三维重建的应用非常广泛,包括医学影像分析、虚拟…

Zoom虚拟背景全攻略:打造个性化视频会议空间

标题:Zoom虚拟背景全攻略:打造个性化视频会议空间 摘要 在视频会议中,背景不仅能够反映个人品味,还能保护隐私。Zoom提供了虚拟背景功能,允许用户自定义会议中的背景。本文将详细介绍如何在Zoom中设置和使用虚拟背景…

静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(二)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 生成时钟 上一节中,我们讨论了理想时钟和传播时钟的创建和使用,本节将讨论生成时钟及其与理想时钟和传播时钟的关系。 图1所示的是一个简…

使用window.open打开新窗口的参数设置

使用window.open打开新窗口的参数设置 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在本文中,我们将深入探讨如何使用JavaScript中的window.open方…

Spring Security 概述

Spring Security 是 Spring 框架的一个重要子项目,专注于为 Java 应用程序提供全面的安全保障。它能够轻松集成到 Spring 应用程序中,提供强大的身份认证和授权功能,保护应用程序免受常见的安全威胁。 Spring Security 的功能 Spring Secur…

Mysql基本知识点

1.数据库的基本操作 显示当前的数据库 show databases;创建一个数据库 直接创建数据库 create database 数据库名字;如果系统没有 test2 的数据库,则创建一个名叫 test2 的数据库,如果有则不创建 create database if not exists test2;如果系统没有 db…

【网络】计算机网络-基本知识

目录 概念计算机网络功能计算机网络的组成计算机网络的分类 网络地址网络地址的分类 计算机网络相关性能指标速率带宽吞吐量时延时延的种类: 时延带宽积往返时延RTT利用率 概念 计算机网络是指将多台计算机通过通信设备连接起来,实现数据和资源的共享。…

【DevOps】Elasticsearch集群JVM参数调整及滚动重启指南

目录 概述 准备工作 滚动重启步骤 1. 禁用分片分配(可选) 2. 关闭索引写操作 3. 检查集群状态 4. 重启Master节点 5. 重启Data节点 6. 重新开启索引写操作 7. 启用分片分配(如果之前禁用了) 8. 监控集群状态 结论 概述…

串口小工具(来源网络,源码修改)

从CSDN 中的一位博主的分享做了一些修改 QtSerial 的配和更稳定些 信号和槽 … … 更不容易崩 # This Python file uses the following encoding: utf-8 import sys import timefrom PySide6.QtGui import QIcon, QTextCursor from PySide6.QtWidgets import QApplication, QWi…

第3章_UART 开发基础

文章目录 第3章 UART 开发基础3.1 同步传输与异步传输3.1.1 概念与示例3.1.2 差别 3.2 UART 协议与操作方法3.2.1 UART 协议3.2.2 STM32H5 UART 硬件结构3.2.3 RS485 协议 3.3 UART 编程3.3.1 硬件连接3.3.2 三种编程方式3.3.3 查询方式3.3.4 中断方式3.3.5 DMA 方式 3.4 效率最…

扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下,文档扫描功能…

【JavaEE】JVM

文章目录 一、JVM 简介二、JVM 运行流程三、JVM 运行时数据区1、堆(线程共享)2、Java虚拟机栈(线程私有)3、本地方法栈(线程私有)4、程序计数器(线程私有)5、方法区(线程…

如何有效保护生物医药企业隔离网数据导出的安全性?

生物医药企业的核心数据保护至关重要,企业为了保护内部的核心数据,会将网络进行物理隔离,将企业内⽹与外⽹隔离。⽹络隔离后,仍存在重要数据从内网导出至外网的隔离网数据导出需求。以下是一些需要特别保护的核心数据类型&#xf…

【快速排序】| 详解快速排序 力扣912

🎗️ 主页:小夜时雨 🎗️专栏:快速排序 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码&a…