应用负载均衡器存在CORS问题。

4

我遇到了一个CORS问题,错误信息如下:

"Access to fetch at 'ALB Load balancer dns address:port' from origin 'ALB Load balancer dns address' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled."

经过一些排查和搜索,我相当自信地认为这个问题与AWS的负载均衡器不支持CORS有关。

我阅读到可以使用API网关作为代理将CORS标头应用于ALB地址以解决此问题,但我已尝试此方法,但似乎并没有解决问题。

请问还有什么其他方法可绕过此问题吗?

P.S. 我已经尝试在我的Web服务器(NGINX)、JavaScript代码和Flask应用程序中应用CORS,但从我的应用程序负载均衡器DNS地址访问时似乎没有任何区别。我也尝试通过Postman联系提到的ALB地址,并未收到关于CORS的错误信息。

1个回答

1
你可以配置apigateway的cors headers,methods和url。你只需要编辑配置文件(以添加新的配置),然后重新部署apigateway的配置(更改仅在从api gateway部署后才可见)。
  1. 如果你保存,它只会保存你当前的配置状态,但不会应用这些配置。
  2. 为了应用你当前的配置,你必须部署你的api gateway。

以下是配置信息:

enter image description here

文档所述:

每次更新API时,您必须将API重新部署到现有阶段或新阶段。更新API包括修改路由、方法、集成、授权者和除阶段设置之外的任何其他内容。


啊,好的,我在 CORS 部分做出更改后没有部署它们,我以为按保存后它们会自动应用。谢谢您的回复,我会尝试一下 :) - Luke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接