AWS CORS 没有“Access-Control-Allow-Origin”错误 [关闭]
Posted
技术标签:
【中文标题】AWS CORS 没有“Access-Control-Allow-Origin”错误 [关闭]【英文标题】:AWS CORS no "Access-Control-Allow-Origin" error [closed] 【发布时间】:2021-05-06 21:59:13 【问题描述】:我正在尝试使用 JSON 向 AWS API 网关发送获取请求。这对邮递员来说很好用,但是当我尝试使用 jquery 发送相同的请求时,我得到错误has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我已经从 AWS 启用了 CORS,并将 Access-Control-Allow-Origin 设置为通配符。
我遵循本指南https://medium.com/@peorth/using-jquery-to-access-a-aws-api-gateway-cors-afa11fd27f2a 并添加了crossDomain: true
,但它没有任何改变。
这是我的 jquery 请求:
var settings =
"url": "https://XXXX.execute-api.eu-west-2.amazonaws.com/default/function",
"crossDomain": "true",
"method": "GET",
"timeout": 0,
"headers":
"Content-Type": "application/json",
"X-Amz-Content-Sha256": "XXXXXXX",
"X-Amz-Date": "20210201T172448Z",
"Authorization": "XXXX, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=XXXXXXX"
,
"data": JSON.stringify("key":"1","id":"TST","action":"singleLed","value":r+""+g+""+b),
;
$.ajax(settings).done(function (response)
console.log(response);
);
我完全没有想法。我怎样才能让 API 正常工作,或者是否有另一种方法可以在不涉及 CORS 的情况下将数据发布到 AWS?
【问题讨论】:
'我已从 AWS 启用 CORS 并将 Access-Control-Allow-Origin 设置为通配符'在这种情况下,您没有正确遵循指南或 URL您通过 CORS 启用的与请求发起者不匹配。在 AWS 上启用 CORS 是解决您问题的正确方法。 @RoryMcCrossan 你能澄清一下吗?启用 CORS 后,AWS 会自动将 Access-Control-Allow-Origin 设置为通配符。根据这个docs.aws.amazon.com/apigateway/latest/developerguide/…,这应该是所有需要的。从 API 网关页面我可以看到带有 Access-Control-Allow-Headers、Access-Control-Expose-Headers、Access-Control、Allow-Origin 和 Access-Control-Allow-Methods 的 OPTIONS 方法。我错过了什么? 您需要将您的请求域的URL设置为Allow-Origin
,并在其他属性中根据需要设置标题和方法。
【参考方案1】:
您需要确保您的请求响应与表单匹配:
"statusCode": 200,
"isBase64Encoded": False,
"headers":
"Access-Control-Allow-Origin":"*",
"Access-Control-Allow-Methods":"GET"
,
"body":"success"
...
【讨论】:
【参考方案2】:让它工作。 当我从 AWS 启用 CORS 时,它实际上并没有将所有必要的标头添加到集成响应中。一旦我编辑了这些标头映射并删除了身份验证以使用通配符,一切都开始工作了。
【讨论】:
以上是关于AWS CORS 没有“Access-Control-Allow-Origin”错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章