この問題のもう1つの根本的な原因は、HTTP /1.1とHTTP / 2の違いである可能性があります。
症状:すべてではない一部のユーザーが、ソフトウェアの使用時にCORSエラーを受け取ると報告しました。
問題:Access-Control-Allow-Origin
ヘッダが欠落していました、時々。
コンテキスト:ホワイトリストへの照合OPTIONS
など、リクエストの処理と対応するCORSヘッダーでの返信専用のLambdaを用意しました。Access-Control-Allow-Origin
Origin
解決策: API Gatewayは、HTTP / 2呼び出しではすべてのヘッダーを小文字に変換しているようですが、HTTP /1.1では大文字を使用しています。これにより、アクセスevent.headers.origin
が失敗しました。
この問題も発生しているかどうかを確認してください。
APIがにhttps://api.example.com
あり、フロントエンドがにあると仮定しますhttps://www.example.com
。CURLを使用して、HTTP / 2を使用してリクエストを行います。
curl -v -X OPTIONS -H 'Origin: https://www.example.com' https:
応答出力にはヘッダーを含める必要があります。
< Access-Control-Allow-Origin: https://www.example.com
HTTP / 1.1を使用して(または小文字のOrigin
ヘッダーを使用して)同じ手順を繰り返します。
curl -v -X OPTIONS --http1.1 -H 'Origin: https://www.example.com' https:
Access-Control-Allow-Origin
ヘッダーが欠落している場合は、ヘッダーを読み取るときに大文字と小文字の区別を確認することをお勧めしますOrigin
。
Bucket Policy
か?ポリシーにメソッドがあることを確認してください