gpt4 book ai didi

ajax - 带有选项请求的 AWS S3 CORS 403 错误

转载 作者:行者123 更新时间:2023-12-03 15:47:45 26 4
gpt4 key购买 nike

我正在尝试从 ajax 请求访问驻留在 S3 中的 html 文件,但出现 403 错误。

我在网上阅读了 AWS,如果我这样做,我需要设置 AWS CORS 规则来修复 403 错误。

但是,我已经尝试了两天,但没有任何运气。这是我的 CORS 配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>XMLHttpRequest</ExposeHeader>
<AllowedHeader>x-csrftoken</AllowedHeader>
</CORSRule>
</CORSConfiguration>

我的 HTTP 请求如下所示:
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Access-Control-Request-He... x-csrftoken
Access-Control-Request-Me... GET
Connection keep-alive
Host xxxxxxxxx.cloudfront.net
Origin http://localhost:8000
User-Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0

谁能帮我看看我错过了什么?

谢谢!

最佳答案

对于那些来这里的人 403 跨源 s3 访问的 OPTIONS 请求 并且没有找到他们要找的东西,也许我在这方面的经验可以提供帮助。

tldr; 浏览器旨在在来自不同来源的 302 重定向时将来源设置为 null

我还遇到了对存储桶上资源的预检请求的 CORS 问题,如果直接浏览该资源,则该资源可用。

我在存储桶上配置了 CORS,并带有正确的接受 header 和来源。类似于以下内容。

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://localhost:8080</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

然后我收到了一个错误
Access to XMLHttpRequest at 'https://[REDACTED].s3.amazonaws.com/[REDACTED]?AWSAccessKeyId=[REDACTED]' (redirected from '[REDACTED]') from origin 'null' 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.

检查请求 header 后,很明显,一个可疑的事情是具有“null”值的 Origin。
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: null
Referer: [REDACTED]
User-Agent: [REDACTED]

事实证明, 浏览器旨在在来自不同来源的 302 重定向时将来源设置为 null 由于安全问题。更多信息 here .

除了不进行重定向之外,没有解决此问题的方法。我不得不重新设计进行重定向的后端资源,以提供直接访问 s3 对象的链接。

关于ajax - 带有选项请求的 AWS S3 CORS 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18995845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com