当前位置: 首页 > 知识库问答 >
问题:

使用Eureka discovery支持CORS策略的Spring云网

都飞跃
2023-03-14

我一直在研究如何在使用Spring Cloud Gateway以及Eureka Discovery时启用CORS。

我在web上搜索了如何启用CORS,但没有结果,因为目前对此的文档非常少。我唯一能找到的是以下文档:https://cloud.spring.io/spring-cloud-gateway/single/spring-cloud-gateway.html#_header_route_predicate_factory,在5.14节中提到了一些默认安全头的应用以及如何更改它们。

它说headerx-approved-cross-domain-policies默认设置为none,这意味着禁用了CORS。

文档告诉我可以通过在application.properties文件中设置property来更改这个头。

但是我不知道设置这个属性需要多大的值,而且它也没有任何文档。我试过将其设置为“任何”、“所有”和“*”,但没有运气。

有人能帮忙吗?有人知道答案吗?或者如果我误解了什么,请让我知道。

共有1个答案

顾嘉良
2023-03-14

不,当spring.cloud.gateway.discovery.Locator.enabled启用DiscoveryClient路由定义定位器=true时,您不能设置其他响应头。

您应该定义自己的路由,并将AddResponseHeader添加到Application.Properties或Application.Properties中的筛选器,下面是一个示例供您参考。

spring:
  cloud:
      routes:
      - id: foo_service
        uri: lb://foo_service
        predicates:
        - Path=/foo_service/**
        filters:
        - AddResponseHeader=Access-Control-Allow-Origin, *
        - RewritePath=/foo_service/(?<segment>.*), /$\{segment}
 类似资料:
  • 我在单独的服务器上运行Spring Cloud gateway,配置如下: 但每次我从React应用程序中得到: 访问位于'http://11.1.1.1:8080/api/support/tickets/create'从原点'http://localhost:3000“”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Or

  • 我试图在Spring Boot应用程序中启用CORS支持,但没有成功。我研究了很多解决方案,但似乎都不适合我。 当我尝试从Angular应用程序呼叫Java后端时,我在chrome中看到了错误: CORS策略阻止从源http://localhost:4200在http://localhost:8080/..处访问XMLHttpRequest:对预检请求的响应不通过权限改造检查:不允许对预检请求进行

  • 我是Spring启动的新手,我使用Spring启动实现了一些基本的REST api。当我尝试使用反应调用这些api时,我在调用一些CORS策略时出现错误。然后我找到了解决这个问题的方法,除了登录api调用之外,我所有的api终端都正常工作。我在调用时遇到了同样的错误: 这是我的Web安全java类。 这是我的示例控制器类。 我被这个问题困住了,我真的需要一些帮助。我尝试了stackoverflow

  • 我试图生成一个简单的axios请求,如下所示(我正在使用vue.js): 但我得到以下错误: 我已经尝试过添加下面的头,但仍然不起作用 但是如果我尝试通过浏览器发出请求(简单地通过复制和粘贴url),一切都很好。 有人知道怎么帮我吗?非常感谢!

  • 20.CORS 支持 20.1简介 出于安全考虑,浏览器禁止AJAX调用驻留在当前来源之外的资源。 例如,当您在一个标签中检查您的银行帐户时,您可以在另一个标签中打开evil.com网站。 evil.com的脚本不能使用您的凭据向您的银行API发出AJAX请求(例如,从您的帐户中提款)! Cross-origin resource sharing(CORS) 是大多数浏览器实现的W3C规范,允许您

  • 问题内容: 我有一个使用restify模块创建的REST api,我想允许跨域资源共享。最好的方法是什么? 问题答案: 您必须将服务器设置为设置跨源标头。不知道是否有内置的使用功能,所以我写了自己的功能。 我是从本教程中找到的。http://backbonetutorials.com/nodejs-restify-mongodb- mongoose/