本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試 CORS
若要測試您的 CORS 組態,可以使用 OPTIONS 方法傳送 CORS 預檢請求,以便讓伺服器在可以傳送請求時做出回應。當 Amazon S3 接收到預檢要求時,S3 會評估儲存貯體的 CORS 組態,並使用第一個符合來源請求的 CORSRule 規則來啟用跨原始伺服器請求。符合規則必須滿足下列條件:
-
對儲存貯體發出之 CORS 請求中的
Origin標頭,必須符合 CORS 組態中AllowedOrigins元素的原始伺服器。 -
在對儲存貯體發出之 CORS 請求的
Access-Control-Request-Method中指定的 HTTP 方法,必須符合 CORS 組態中AllowedMethods元素列出的方法。 預檢請求的
Access-Control-Request-Headers標頭中列出的標頭,必須符合 CORS 組態的AllowedHeaders元素中的標頭。
下列是 CORS 組態的範例。若要建立 CORS 組態,請參閱設定 CORS。如需 CORS 組態的更多範例,請參閱 CORS 組態的元素。
如需 CORS 規則的設定和故障診斷指引,請參閱如何在 Amazon S3 中設定 CORS,以及如何使用 cURL 確認 CORS 規則?
若要測試 CORS 組態,您可以使用下列 CURL 命令傳送預檢 OPTIONS 檢查。CURL 是一種命令列工具,可用於與 S3 互動。如需詳細資訊,請參閱 CURL
curl -v -X OPTIONS \ -H "Origin: http://www.example1.com" \ -H "Access-Control-Request-Method: PUT" \ -H "Access-Control-Request-Headers: Authorization" \ -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\ "http://bucket_name.s3.amazonaws.com/object_prefix_name"
在上述範例中,curl -v -x OPTIONS 命令會用來將預檢請求傳送至 S3,以查詢 S3 是否允許從跨原始伺服器 http://www.example1.com 傳送物件 PUT 請求。標頭 Access-Control-Request-Headers 和 Access-Control-Expose-Headers 是選用項目。
-
為了回應預檢
OPTIONS請求中的Access-Control-Request-Method標頭,如果請求的方法相符,Amazon S3 會傳回允許的方法清單。 -
為了回應預檢
OPTIONS請求中的Access-Control-Request-Headers標頭,如果請求的標頭相符,Amazon S3 會傳回允許的標頭清單。 -
為了回應預檢
OPTIONS請求中的Access-Control-Expose-Headers標頭,如果請求的標頭符合可由指令碼 (在瀏覽器中執行) 存取的允許標頭,Amazon S3 會傳回允許的標頭清單。
注意
傳送預檢請求時,如果不允許任何 CORS 請求標頭,則不會傳回任何回應 CORS 標頭。
為了回應此預檢 OPTIONS 請求,您將會收到 200 OK 回應。如需測試 CORS 時收到的常見錯誤代碼,以及解決 CORS 相關問題的詳細資訊,請參閱 對 CORS 進行故障診斷。
< HTTP/1.1 200 OK < Date: Fri, 12 Jul 2024 00:23:51 GMT < Access-Control-Allow-Origin: http://www.example1.com < Access-Control-Allow-Methods: GET, PUT, POST, DELETE < Access-Control-Allow-Headers: Authorization < Access-Control-Expose-Headers: x-amz-meta-custom-header < Access-Control-Allow-Credentials: true < Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method < Server: AmazonS3 < Content-Length: 0