同様の問題が発生しましたが、GETではなく、事前に署名されたS3POSTで発生しました。これは、この問題をグーグルで検索する人にとって役立つかもしれないと思いました。
一部のブラウザでは、Dropzone.js libが画像をS3バケット(事前に署名されたS3 POST)に直接アップロードできませんでした。奇妙な部分は、これが常に一部のコンピューターで発生しており、20回に1回の試行で発生していたことです。
1台のコンピューターで、Firefoxデバッガー([ネットワーク]タブ)でエラーをキャプチャできます。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://s3-eu-west-1.amazonaws.com/pobble.com-browser-uploads-production. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://s3-eu-west-1.amazonaws.com/pobble.com-browser-uploads-production. (Reason: CORS request failed).
S3バケットのCORSをこれに更新すると、次のようになりました。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://www.myapp.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>Accept-Ranges</ExposeHeader>
<ExposeHeader>Content-Range</ExposeHeader>
<ExposeHeader>Content-Encoding</ExposeHeader>
<ExposeHeader>Content-Length</ExposeHeader>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://www.app.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>Accept-Ranges</ExposeHeader>
<ExposeHeader>Content-Range</ExposeHeader>
<ExposeHeader>Content-Encoding</ExposeHeader>
<ExposeHeader>Content-Length</ExposeHeader>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
</CORSRule>
</CORSConfiguration>
重要な部分は、このS3が応答ヘッダーを<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
公開しているおかげです。OPTIONS
POST
@ anas-alaoui、 @ joserose 、@equivalentのコラボレーション 作品