当前位置: 首页 > 编程笔记 >

SpringCloud Gateway跨域配置代码实例

毋举
2023-03-14
本文向大家介绍SpringCloud Gateway跨域配置代码实例,包括了SpringCloud Gateway跨域配置代码实例的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了SpringCloud Gateway跨域配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Springboot版本:2.1.8.RELEASE

SpringCloud版本:Greenwich.SR2

yml配置:

spring:
 cloud:
  gateway:
   globalcors:
    cors-configurations:
     '[/**]': 
      # 允许携带认证信息
      # 允许跨域的源(网站域名/ip),设置*为全部
      # 允许跨域请求里的head字段,设置*为全部
      # 允许跨域的method, 默认为GET和OPTIONS,设置*为全部
      # 跨域允许的有效期
      allow-credentials: true
      allowed-origins: 
      - "http://localhost:13009"
      - "http://localhost:13010"
      allowed-headers: "*"
      allowed-methods: 
      - OPTIONS
      - GET
      - POST
      max-age: 3600
      # 允许response的head信息
      # 默认仅允许如下6个:
      #   Cache-Control
      #   Content-Language
      #   Content-Type
      #   Expires
      #   Last-Modified
      #   Pragma
      #exposed-headers:

配置类:org.springframework.cloud.gateway.config.GlobalCorsProperties

网上有很多人说这样配无效,但我测试下来是OK的,如果真的无效,可以手动去装配Cros配置:

package com.longge.gateway.configuration;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.cloud.gateway.config.GlobalCorsProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

/**
 * @author roger yang
 * @date 11/21/2019
 */
@Configuration
@ConditionalOnBean(GlobalCorsProperties.class)
public class CorsAutoConfiguration {
  @Autowired
  private GlobalCorsProperties globalCorsProperties;
  
  @Bean
  public CorsWebFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
    globalCorsProperties.getCorsConfigurations().forEach((path,corsConfiguration)->source.registerCorsConfiguration(path, corsConfiguration));
    return new CorsWebFilter(source);
  }
}

当然,我们更推荐在Nginx等中间件去做跨域的处理,业务服务就应该关注业务。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 文档:https://www.npmjs.com/package/egg-cors 安装:npm i egg-cors --save 配置插件 // {app_root}/config/plugin.js exports.cors = { enable: true, package: 'egg-cors', }; config/config.default.js 目录下配置 config.

  • 从FastAdmin1.2.0版本开始已经支持跨域配置,如果我们开发的插件有跨域需要,可以快速使用FastAdmin中的跨域配置。 首先直接在我们的基类控制器代码中添加一行check_cors_request();即可实现跨域的检测和响应。例如: /** * 初始化操作 * @access protected */ protected function _initialize() {

  • 本文向大家介绍vue(2.x,3.0)配置跨域代理,包括了vue(2.x,3.0)配置跨域代理的使用技巧和注意事项,需要的朋友参考一下 导语:首先,每一个前端开发人员都应该知道同源策略,同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,所谓同源是指,域名,协议,端口相同。有一个不同时,都将请求不到资源,将无法“跨域”获取资源。 vue3.0 从最新版开始,

  • 本文向大家介绍ajax跨域调用webservice的实现代码,包括了ajax跨域调用webservice的实现代码的使用技巧和注意事项,需要的朋友参考一下   最近ajax访问webservice遇到跨域的问题,网上搜索资料,总结如下(很多都是觉得人家总结不错的复制下来)   <<用JSON来传数据,靠JSONP来跨域>>   先上我的已实现代码:   前端代码:   服务端代码:   c#   

  • 本文向大家介绍ThinkPHP 5.1 跨域配置方法,包括了ThinkPHP 5.1 跨域配置方法的使用技巧和注意事项,需要的朋友参考一下 因为最近的项目采用了API接口开发方式,后端需要配置跨域的规则以便前端能够访问。 系统采用的框架为 ThinkPHP,版本 5.1.19 关于OPTIONS请求 由于前端的知识不是很熟悉,查阅了网上的资料得知,OPTIONS 请求是在 AJAX 发送请求前发送

  • 本文向大家介绍vue-cli 3.x 配置Axios(proxyTable)跨域代理方法,包括了vue-cli 3.x 配置Axios(proxyTable)跨域代理方法的使用技巧和注意事项,需要的朋友参考一下 vue-cli 3.x 的beta版本,基于iview做的公司的角色权限管理平台。 3.x 版本对整个项目的构建都有很大的改动,没有原先的config文件夹,没有dev.env.js和pr

  • 本文向大家介绍Vue项目配置跨域访问和代理proxy设置方式,包括了Vue项目配置跨域访问和代理proxy设置方式的使用技巧和注意事项,需要的朋友参考一下 在vue单页应用项目开发时,避免不了要请求后端,这时通常就会出现跨域问题。有2种常用的解决方案 后端设置允许跨域访问 前端通过代理进行访问后端 下面我们只说说如何配置vue-cli代理访问: vue-cli代理 最简单就是配置vue conif

  • 本文向大家介绍Django+Vue跨域环境配置详解,包括了Django+Vue跨域环境配置详解的使用技巧和注意事项,需要的朋友参考一下 概述 在使用Django+Vue开发过程中,遇到了很多开发环境相关的问题,比如跨域,比如ajax请求参数等,本篇文章主要记录解决在开发过程中,遇到的一些问题。 跨域不带Cookie 在使用Vue脚手架开发的过程中,会使用Vue脚手架自带的Server进行项目调试,