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.
Réponse
Trop de publicités?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.