news 2026/5/5 1:37:21

一些开发时解决跨域问题(CORS)的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一些开发时解决跨域问题(CORS)的方法

在作前后端分离的web项目时,经常会遇到一些跨域问题,以下是我总结的一些跨域方法

1.后端配置

1.java(springboot)解决

第一种:使用@CrossOrigin解决,该方法简单灵活但配置不够集中统一,但只在局部有效,在大型应用中稍显吃力

@CrossOrigin(//允许跨域的urlorigins="http://localhost:3000",//允许接受的请求方法methods={RequestMethod.GET,RequestMethod.POST,RequestMethod.PUT},//允许的请求头allowedHeaders="*",//允许的预检请求的缓存时间maxAge=3600)

第二种:使用WebMvcConfigurer接口解决,该方法为全局配置

importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.CorsRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration//声明配置类publicclassGlobalCorsConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddCorsMappings(CorsRegistryregistry){registry.addMapping("/api/**")// 对所有 /api/ 开头的路径生效.allowedOrigins("http://localhost:3000")// 允许跨域的url.allowedMethods("GET","POST","PUT","DELETE","OPTIONS")// 允许的请求方法.allowedHeaders("*")// 允许所有请求头(可以更改).allowCredentials(true)// 允许携带 Cookie 等凭证.maxAge(3600);// 预检请求缓存时间}}

2.Node.js

首先安装依赖

npmi corsnpmi express

然后进行配置

constexpress=require('express');//导入express包constcors=require('cors');// 导入 cors 包constapp=express();// 只允许特定域名(相当于 allowedOrigins("http://localhost:3000"))constcorsOptions={origin:'http://localhost:3000',credentials:true// 允许携带 Cookie};app.use(cors(corsOptions));//如果直接app.use(cors)代表允许所有url跨域

如果想要对单个接口进行跨域配置

// 只有这个接口允许跨域app.get('/api/public',cors(),(req,res)=>{res.json({msg:'允许'});});// 这个接口不允许跨域(如果没有全局 cors)app.get('/api/private',(req,res)=>{res.json({msg:'拒绝'});});

2.开发环境配置代理

vite进行配置

exportdefault{server:{proxy:{'/api':{target:'http://后端地址:8080',// 目标后端changeOrigin:true,// 修改请求头中的 Origin// rewrite: (path) => path.replace(/^\/api/, '') // 可选:路径重写}}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 8:19:31

CV算法入门必读:6大经典神经网络模型解析

CV算法入门必读:6大经典神经网络模型解析【核心要点】 ​目录1. LeNet(90/98)诞生于1990年,在手写体字符识别领域创造性的引入了卷积神经网络的基本操作,意义重大,可以说是现代卷积神经网络的发展起点。1.1…

作者头像 李华
网站建设 2026/4/21 5:14:30

# 发散创新:基于Python与Micro:bit的可穿戴心率监测系统实战在智能穿戴设备日益普及的今天,**实时健康数据

发散创新:基于Python与Micro:bit的可穿戴心率监测系统实战 在智能穿戴设备日益普及的今天,实时健康数据采集已成为开发者关注的核心方向之一。本文将带你从零开始构建一个轻量级、高扩展性的可穿戴心率监测系统,使用 Micro:bit(基…

作者头像 李华
网站建设 2026/4/21 1:28:49

Wan2.2-I2V-A14B新手必看:WebUI界面各模块功能图解与操作动线

Wan2.2-I2V-A14B新手必看:WebUI界面各模块功能图解与操作动线 1. 开篇导览:认识你的视频创作助手 当你第一次打开Wan2.2-I2V-A14B的WebUI界面时,可能会被各种选项和参数搞得有点懵。别担心,这个界面其实设计得非常直观&#xff…

作者头像 李华
网站建设 2026/4/26 11:48:35

为什么92%的Agent项目卡在v1.2?SITS2026技术委员会发布:面向规模化交付的Agent架构成熟度评估矩阵(含5级量化打分表)

第一章:Shell脚本的基本语法和命令 2026奇点智能技术大会(https://ml-summit.org) Shell脚本是Linux/Unix系统自动化运维与任务编排的核心工具,其本质是按顺序执行的命令集合,由Bash等Shell解释器逐行解析。理解基本语法结构、变量机制、条…

作者头像 李华
网站建设 2026/4/27 1:47:38

Wan2.1-umt5跨语言应用实战:多语言翻译与本地化内容生成

Wan2.1-umt5跨语言应用实战:多语言翻译与本地化内容生成 最近在折腾一个出海项目,需要把产品资料同步到好几个国家,翻译和本地化这块真是让人头疼。专业翻译服务贵且慢,通用翻译工具又总在专业术语和文化习惯上掉链子。直到我深度…

作者头像 李华
网站建设 2026/4/30 14:57:39

基于51单片机与SHT11的智能温室环境仿真系统设计

1. 系统设计背景与核心功能 想象一下你正在经营一个小型温室种植园,每天最头疼的就是不知道什么时候该开窗通风、什么时候该启动加湿器。传统的人工记录方式不仅费时费力,还经常因为反应不及时导致作物减产。这就是为什么我们需要一个智能温室环境监控系…

作者头像 李华