RuoYi -Cloud开源框架-跨域配置
创始人
2024-02-12 06:26:31
0

🦆博主介绍:小黄鸭技术

🌈擅长领域:Java、实用工具、运维

👀 系列专栏:📢开发工具 Java之路 八股文之路

📧如果文章写作时有错误的地方,请各位大佬指正,一起进步!!!

🧡欢迎大家点赞➕收藏⭐➕评论💬支持博主🤞  

目录

 什么是跨域

RoYi-Cloud如何解决跨域

            💖 配置方式

代码方式                

Nginx反向代理方式

参数解析


什么是跨域

        简单来说就是违背了浏览器的同源策略,指协议,域名,端口都要相同,其中有一个不同都会产生跨域。

RoYi-Cloud如何解决跨域

配置方式:

                通过在gateway的nacos中的gateway.yml添加以下配置

spring:cloud:gateway:globalcors:corsConfigurations:'[/**]':allowedOriginPatterns: "*"allowed-methods: "*"allowed-headers: "*"allow-credentials: trueexposedHeaders: "Content-Disposition,Content-Type,Cache-Control"

代码方式:                

                在gateway项目中新增CorsConfig.java

package com.ruoyi.gateway.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.cors.reactive.CorsUtils;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;/*** 跨域配置* * @author ruoyi*/
@Configuration
public class CorsConfig
{/*** 这里为支持的请求头,如果有自定义的header字段请自己添加*/private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, Admin-Token, App-Token";private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";private static final String ALLOWED_ORIGIN = "*";private static final String ALLOWED_EXPOSE = "*";private static final String MAX_AGE = "18000L";@Beanpublic WebFilter corsFilter(){return (ServerWebExchange ctx, WebFilterChain chain) -> {ServerHttpRequest request = ctx.getRequest();if (CorsUtils.isCorsRequest(request)){ServerHttpResponse response = ctx.getResponse();HttpHeaders headers = response.getHeaders();headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS);headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS);headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN);headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE);headers.add("Access-Control-Max-Age", MAX_AGE);headers.add("Access-Control-Allow-Credentials", "true");if (request.getMethod() == HttpMethod.OPTIONS){response.setStatusCode(HttpStatus.OK);return Mono.empty();}}return chain.filter(ctx);};}
}

Nginx反向代理方式:

location /api {add_header Access-Control-Allow-Origin http://localhost:3000 always;add_header Access-Control-Allow-Headers "Accept,Accept-Encoding,Accept-Language,Connection,Content-Length,Content-Type,Host,Origin,Referer,User-Agent";add_header Access-Control-Allow-Methods "GET, POST, PUT, OPTIONS";add_header Access-Control-Allow-Credentials true;if ($request_method = 'OPTIONS') {return 200;}proxy_cookie_domain ~\.?duck.com $host;proxy_pass https://duck.com;
}

参数解析

allowedOriginPatterns: 放行域名,可以多个,用","分割

allowed-methods: 放行请求方式,可以多个,例如

"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"

allowed-headers: 放行头部信息

allow-credentials: 是否发送Cookie信息

exposedHeaders: 暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)

🧡欢迎大家点赞➕收藏⭐➕评论💬支持博主🤞   

相关内容

热门资讯

工业遗存改造催生京津冀文旅新地... 转自:北京日报客户端炼钢高炉变身科幻体验馆,运料通廊改造为极限运动场,工业厂房里开出网红餐厅……北京...
全国游泳冠军赛潘展乐男子400... 中国青年报客户端湖州5月17日电(中青报·中青网记者 慈鑫)今晚在深圳举行的2025全国游泳冠军赛男...
突发!广西山洪,3人遇难1人失... 转自:央视财经记者从广西百色市隆林各族自治县应急管理局获悉,5月16日至17日,受高空槽和低层切变线...
国羽包揽泰国公开赛混双冠亚军 ... 20岁的高家炫和22岁的吴梦莹是今年年初通过调赛成功进入国羽一队的年轻混双组合。今年2月,两人首次代...
“先增聘再离任”又添一例,景顺... 转自:扬子晚报网澎湃新闻记者 丁欣晴景顺长城基金百亿基金经理鲍无可离职传言终成真。5月17日,景顺长...
湾区法律专家共议仲裁制度创新 ... 本报记者 赵毅 广州报道在全球经济深度调整与国内产业转型升级的双重驱动下,中国企业正加速“走出去”。...
科普帖!运动和不运动的人差别有... 【科普帖!#运动和不运动的人差别有多大#?】坚持跑马拉松后更“显老”了?#运动加速衰老还是延缓衰老#...
锁价≠最低价!南航9.9元起的... “提前10天至3个月,支付9.9元起的费用,用户就可将意向行程机票价格锁住3天或7天”。继“锁座”之...
体验堪称“小15” Xiaom...   轻薄成为目前手机行业的主旋律,特别是针对年轻用户打造的时尚手机,为此在全新推出的Xiaomi C...
下周开始,涉及长春这些小区! 长春燃气股份有限公司于2025年5月19日至5月25日对以下小区居民用户的户内燃气设施进行入户安全检...
青少年舞者竞逐梦想,用足尖点亮... 转自:上观新闻时光荏苒,卢湾体育馆的穹顶下,今日再度被少年的足尖叩响。5月17日,上海市民体育舞蹈节...
宁德时代:山东时代电池生产基地... 人民财讯5月17日电,近日,山东时代储能及动力电池生产基地在济宁市兖州区正式投产,这是宁德时代在北方...
蔡奇在河北唐山市调研时强调 坚... 转自:北京日报客户端新华社石家庄5月17日电中共中央政治局常委、中央书记处书记蔡奇16日至17日在河...
滴水湖旅游度假区主题音乐会唱响... 今天(5月17日),滴水湖畔,“年轻的城”为迎接第14个“中国旅游日”及520“临港遇见爱”主题月,...
“俄罗斯礼品季”亮相哈尔滨 数... 中新社哈尔滨5月17日电 (记者 王妮娜)“俄罗斯制造”节展17日在哈尔滨举行开幕式,来自俄罗斯35...
绝味鸭脖被指缺斤少两? 转自:荔枝新闻 【#绝味鸭脖被指缺斤少两#?】#女子称绝...
“点亮网络文明之光”2025年... 5月16日,“点亮网络文明之光”2025年网上主题宣传活动在滨海城市大连正式启动。本次活动联动大连、...
「教」量|高途一季度突然盈利:... 21世纪经济报道记者王峰北京报道  近日,高途教育科技集团(NYSE:GOTU)发布2025财年第一...
航行警告 黄海水域有海上火箭发... 转自:财联社【航行警告 黄海水域有海上火箭发射】财联社5月17日电,据中国海事局网站消息,日照海事局...
广西隆林突发山洪致3人遇难,1...   记者从广西百色市隆林各族自治县应急管理局获悉,5月16日至17日,受高空槽和低层切变线共同影响,...