cURL で CORS リクエストをデバッグするにはどうすればいいですか? 質問する

cURL で CORS リクエストをデバッグするにはどうすればいいですか? 質問する

デバッグするにはどうすればいいですかCORSリクエストを使用してカール? これまでのところ、プリフライト要求を「シミュレート」する方法を見つけることができませんでした。

ベストアンサー1

curl を使用して CORS リクエストをデバッグする方法は次のとおりです。

cUrl を使用して通常の CORS リクエストを送信する:

curl -H "Origin: http://example.com" --verbose \
  https://www.googleapis.com/discovery/v1/apis?fields=

フラグ-H "Origin: http://example.com"はリクエストを行うサードパーティのドメインです。自分のドメインに置き換えてください。

この--verboseフラグは応答全体を印刷するので、リクエスト ヘッダーと応答ヘッダーを確認できます。

上記で使用している URL は、CORS をサポートする Google API へのサンプル リクエストですが、テストする URL に置き換えることができます。

応答にはAccess-Control-Allow-Originヘッダーが含まれている必要があります。

cUrl を使用してプリフライト リクエストを送信する:

curl -H "Origin: http://example.com" \
  -H "Access-Control-Request-Method: POST" \
  -H "Access-Control-Request-Headers: X-Requested-With" \
  -X OPTIONS --verbose \
  https://www.googleapis.com/discovery/v1/apis?fields=

これは、いくつかの追加事項を除けば、通常の CORS リクエストに似ています。

フラグ-Hは追加のプリフライトリクエストヘッダーをサーバーに送信します

この-X OPTIONSフラグは、これが HTTP OPTIONS 要求であることを示します。

プリフライト リクエストが成功した場合、応答には、、および応答ヘッダーが含まれますAccess-Control-Allow-OriginAccess-Control-Allow-MethodsプリAccess-Control-Allow-Headersフライト リクエストが成功しなかった場合、これらのヘッダーは表示されません。そうしないと、HTTP 応答は 200 になりません。

User-Agentフラグを使用して、などの追加ヘッダーを指定することもできます-H

おすすめ記事