gpt4 book ai didi

来自 S3 CORS 的 AJAX GET 在预检选项上失败,出现 403

转载 作者:行者123 更新时间:2023-12-02 10:20:58 24 4
gpt4 key购买 nike

我看到了几个问题并对此进行了讨论,但仍然找不到任何答案。我正在尝试使用 AJAX GET 对 S3 中的文件执行简单的 GET。我的存储桶配置为 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>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

这是我的调用的curl 片段(省略了文件..):

curl 'https://s3.amazonaws.com/mybucket/myfile.tar.gz
-X OPTIONS

-H 'Access-Control-Request-Method: GET'
-H 'Origin: http://0.0.0.0:9000'
-H 'Referer: http://0.0.0.0:9000/'
-H 'Access-Control-Request-Headers: accept, x-longtostring'

-H 'Pragma: no-cache'
-H 'Accept-Encoding: gzip, deflate, sdch'
-H 'Accept-Language: en-US,en;q=0.8,he;q=0.6,mg;q=0.4'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36'
-H 'Accept: */*'
-H 'Cache-Control: no-cache'
-H 'Connection: keep-alive'
--compressed
--verbose

我得到 403 结果:

 HTTP/1.1 403 Forbidden
x-amz-request-id: 1F545B4ED302B3AD
x-amz-id-2: AiQwUgOeVhfxRjYL/13MLBsUQdx8n4bYLhV3TwftDfnMZ+7FhvnxfVAGLCo3WCiT
Content-Type: application/xml
Transfer-Encoding: chunked
Date: Sun, 30 Aug 2015 21:25:17 GMT
Server AmazonS3 is not blacklisted
Server: AmazonS3

<?xml version="1.0" encoding="UTF-8"?>
Connection #0 to host s3.amazonaws.com left intact
<Error><Code>AccessForbidden</Code><Message>CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.</Message><Method>GET</Method></Error>

删除 -X OPTIONS 可以解决此问题。但这是由浏览器自动添加的(我使用的是 Angular $http.get),我对此无法控制(或者我有吗?)。

谢谢

最佳答案

在我能想到的任何配置中,s3 似乎都不会接受 OPTIONS 调用。但对于 GET 请求 - 如果您不添加任何自定义 header ,浏览器将不会触发 OPTIONS。

因此,我从特定的 $http.get(s3FilePath) 请求中删除了所有自定义 header 。

我收到 403 的原因 - 是因为文件尚未准备好。文件准备好后,您就得到了正确的结果。

关于来自 S3 CORS 的 AJAX GET 在预检选项上失败,出现 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32301326/

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