443 votes

Comment pouvez-vous déboguer une demande CORS avec cURL?

Je me demande s'il est possible de déboguer les demandes CORS à l'aide de cURL. Jusqu'à présent, je n'ai trouvé aucun moyen de "simuler" la demande de contrôle en amont.

687voto

monsur Points 8340

Voici comment vous pouvez déboguer la SCRO demandes à l'aide de curl.

L'envoi régulier de la SCRO demande à l'aide de cUrl:

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

L' -H "Origin: http://example.com" drapeau est le tiers de domaine faisant la demande. Suppléant dans, quel que soit votre domaine est.

L' --verbose drapeau impressions de l'ensemble de la réponse, de sorte que vous pouvez voir la demande et en-têtes de réponse.

L'url que j'utilise ci-dessus est un exemple de requête à l'API de Google qui prend en charge la SCRO, mais vous pouvez remplacer dans n'importe quelle url de test.

La réponse doit inclure l' Access-Control-Allow-Origin - tête.

L'envoi d'une demande de contrôle en amont à l'aide de 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=

Cela ressemble à l'ordinaire de la SCRO demande avec quelques ajouts:

L' -H drapeaux envoyer plus de contrôle en amont des en-têtes de requête au serveur

L' -X OPTIONS indicateur indique que c'est un HTTP OPTIONS de demande.

Si le contrôle en amont de la demande est acceptée, la réponse doit inclure l' Access-Control-Allow-Origin, Access-Control-Allow-Methods, et Access-Control-Allow-Headers - têtes de réponse. Si la demande de contrôle en amont n'a pas été couronnée de succès, ces en-têtes ne devrait pas apparaître, ou de la réponse HTTP de ne pas être 200.

Vous pouvez également spécifier des en-têtes supplémentaires, telles que l' User-Agent, à l'aide de la -H drapeau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X