curl -H "origin: ORIGIN_DOMAIN" -H "x-api-key: API_KEY" -v "API_URL"
Run Code Online (Sandbox Code Playgroud)
响应如预期(数据为 200 OK)
但是当我尝试加载 SPA 时,浏览器显示:
从源“http://d1b89hgibifv2r.cloudfront.net”访问“https://47zb0mpexk.execute-api.eu-south-1.amazonaws.com/default/autostatistika”处的 XMLHttpRequest 已被 CORS 策略阻止:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我的 S3 存储桶 CORS 策略:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
我发现了一些 stackoverflow 问题,如下所示:Correct S3 + Cloudfront CORS Configuration? 并做了答案中的确切内容(以及aws文档中的内容):/sf/answers/3666833481/
请问,有人可以帮我解决这个问题吗?谢谢。
更新: 我忘记使用远程 API 的设置在本地计算机上尝试 SPA,并且我的应用程序无法工作,即使在本地计算机上也是如此。几个小时后,我发现我的 API 仅在使用 axios.POST() 的浏览器中不响应标头 'Access-Control-Allow-Origin': '*'。所以问题出在 API 中,因为即使 cURL 命令有效,它也无法正确响应标头“Access-Control-Allow-Origin”(AWS …