[英]S3 CORS errors never end
我正在使用 S3 從 UI 上傳圖像。 我有一個帶有訪問密鑰 ID/秘密訪問密鑰的 AMI,它只允許putObject
和getObject
。 所有putObject
都使用public-read
acl 調用。
我在 S3 存儲桶中有這個 CORS 配置:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://foo.com</AllowedOrigin>
<AllowedOrigin>http://localhost:5000</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
我不斷收到這些 CORS 錯誤:
XMLHttpRequest 無法加載https://foo.s3.amazonaws.com/items/images/e75768-2018-0-26/roar-bomber.png 。 對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。 因此,不允許訪問 Origin ' https://foo.com '。 響應具有 HTTP 狀態代碼 403。
我顯然允許正確的起源,所以我不知道為什么它一直對我大喊大叫。 但更糟糕的是,它有時會工作,然后即使在什么都沒有改變之后又會停止工作......
使用 Chrome 瀏覽器。
更新
AWS 不允許將OPTIONS
方法設置為允許的方法。 按照指南https://docs.aws.amazon.com/en_pv/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors ,檢查部分AllowedMethod Element 。
添加 CORS 配置中允許的OPTIONS
方法。
預檢請求使用 OPTION 方法來檢查 CORS 允許使用哪些方法。
https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.