【问题标题】:CORS Access-Control-Allow-Origin for https用于 https 的 CORS 访问控制允许来源
【发布时间】:2020-04-02 03:17:56
【问题描述】:

我有一个两部分的应用程序,

  • aws eb 上的 https api 服务器,使用云端
  • https aws s3 角度前端,使用 cloudfront

我在API app.js中设置了res.setHeader('Access-Control-Allow-Origin', '*');,可以手动访问API没有问题。

但是在使用 webapp 时出现以下错误 No 'Access-Control-Allow-Origin' header is present.

当我使用 http 时它工作正常,但使用来自云端分发的 https 我得到了错误。

任何有关阅读内容的帮助或指示将不胜感激。

【问题讨论】:

  • 在您的客户端上提供所有错误详细信息。
  • 您使用什么网络服务器来托管 API?

标签: angular express amazon-cloudfront


【解决方案1】:

首先通过运行类似于以下的 curl 命令检查源是否返回“Access-Control-Allow-Origin”标头:

curl -H "origin: example.com" -v "https://api.example.com/hello"

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Mon, 01 May 2018 03:06:41 GMT
Content-Type: text/html
Content-Length: 3770
Last-Modified: Thu, 16 Mar 2017 01:50:52 GMT
Connection: keep-alive
ETag: "58c9ef7c-eba"
Access-Control-Allow-Origin: *
Accept-Ranges: bytes

其次,检查云端发行版是否允许GET, HEAD, OPTIONS http方法。

参考: https://aws.amazon.com/premiumsupport/knowledge-center/no-access-control-allow-origin-error/

【讨论】:

  • 我猜你的问题是在云端配置
  • 还有一点,确保在 API 的错误响应中也包含标题 'Access-Control-Allow-Origin', '*'
  • 非常感谢。我第一次使用 AWS。我没有在云端启用这些方法。有很多东西可以忽略!
  • 很高兴为您提供帮助
猜你喜欢
  • 2019-02-09
  • 2016-06-02
  • 2014-08-06
  • 2021-09-07
  • 2016-06-27
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多