跨域问题解决实践

devtools/2025/2/6 21:55:36/

     在软件开发中,经常会遇到跨域问题,这个问题比较头疼,今天主要介绍下遇到的跨域问题解决思路及如何解决?

    1、首先是后端跨域问题

     spring boot中的跨域配置如下:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {}@Overridepublic void addFormatters(FormatterRegistry registry) {
//        registry.addConverter(new LongDateConverter());}@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**") // 所有接口.allowCredentials(true) // 是否发送 Cookie.allowedOriginPatterns("*") // 支持域.allowedMethods("GET", "POST", "PUT", "DELETE") // 支持方法.allowedHeaders("*").exposedHeaders("*");}
}
2、根据http返回状态值判断

 查看nginx日志,根据返回状态排查问题。例如:上传文件调用后端接口返回413, 标识请求体过大导致跨域,nginx配置如下:

client_max_body_size 100m;
// 默认nginx上传文件大小限制是1M
3、调用后端接口的OPTIONS(预检)请求

    在某些情况下,如果你的nginx需要配置options接口,这个接口是后端没有的,是一个默认的请求,对应的nginx配置

location / {# if ($request_method = 'OPTIONS'){add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods 'POST, GET, OPTIONS, DELETE';add_header Access-Control-Max-Age "3600";add_header Access-Control-Allow-Credentials true;add_header Access-Control-Allow-Headers *;add_header Content-Type 'application/json; charset=utf-8';return 204;}# proxy_pass http://127.0.0.1:8115; proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}


http://www.ppmy.cn/devtools/156632.html

相关文章

【go语言】结构体

一、type 关键字的用法 在 go 语言中,type 关键字用于定义新的类型,他可以用来定义基础类型、结构体类型、接口类型、函数类型等。通过 type 关键字,我们可以为现有类型创建新的类型别名或者自定义新的类型。 1.1 类型别名 使用 type 可以为…

C32.【C++ Cont】静态实现双向链表及STL库的list

目录 1.知识回顾 2.静态实现演示图 3.静态实现代码 1.初始双向链表 2.头插 3.遍历链表 4.查找某个值 4.任意位置之后插入元素 5.任意位置之前插入元素 6.删除任意位置的元素 4.STL库的list 1.知识回顾 96.【C语言】数据结构之双向链表的初始化,尾插,打印和尾删 97.【C…

人工智能学习(四)之机器学习基本概念

机器学习基本概念详细解析:从生活实例轻松入门 在当今数字化时代,机器学习作为人工智能领域的核心技术之一,正深刻地改变着我们的生活和工作方式。从智能语音助手到图像识别系统,从个性化推荐引擎到自动驾驶汽车,机器…

python算法和数据结构刷题[1]:数组、矩阵、字符串

一画图二伪代码三写代码 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中)-CSDN博客 算法通关手册(LeetCode) | 算法通关手册(LeetCode) (itcharge.cn) 面试经典 150 题 - 学习计…

Redis缓存穿透、击穿、雪崩介绍以及解决方案

一、缓存穿透 1.1 什么是缓存穿透? 指的是,外部进来的请求,查询一个不存在的数据。Redis中没有,数据库中也没有,这时候如果外部恶意大量请求,所有请求会直接查询数据库,导致数据库崩溃 1.2 解决…

C++多线程编程——call_once和单例模式

目录 1. 前言 2. call_once和once_flag 3. 后记 3.1 单例类的析构问题 3.2 饿汉式单例模式的线程安全问题 1. 前言 之前在讲解单例模式时,有提到懒汉式单例模式使用了双重检测Double-Checked Locking Pattern (DCLP)来解决多线程的安全访问问题。但是该方法也…

数据结构(AVL树、B-Tree、B+Tree)

AVL树 AVL树是一种自平衡的二叉搜索树,它的特点是每个节点的左子树和右子树的高度差(平衡因子)的绝对值不超过1。这种平衡性保证了AVL树在进行查找、插入和删除操作时都能保持较高的效率。 平衡因子 在AVL树中,每个节点都维护一…

MySQL--》日志与主从复制的实战技巧

目录 日志 错误日志 二进制日志 查询日志 慢查询日志 主从复制 日志 日志:是记录数据库操作和事务的文件,主要用于帮助数据库管理员(DBA)跟踪、恢复数据以及进行故障排查,日志是MySQL数据库管理中非常重要的一部分,常见的日…