Maison >interface Web >js tutoriel >Comment le contrôle en amont CORS vérifie-t-il les autorisations des demandes ?

Comment le contrôle en amont CORS vérifie-t-il les autorisations des demandes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-18 21:49:041021parcourir

How Does CORS Preflighting Verify Request Permissions?

Comprendre CORS : demandes de contrôle en amont

Le partage de ressources d'origine croisée (CORS) implique de permettre un accès contrôlé aux ressources de différentes origines. Pour ce faire, les navigateurs implémentent un mécanisme de « contrôle en amont » pour vérifier si une requête est autorisée. Voici comment implémenter correctement le contrôle en amont d'une requête HTTP :

Réponse du serveur avec l'en-tête Access-Control-Allow-Origin

Comme mentionné, le serveur doit ajouter le "Access- En-tête Control-Allow-Origin" avec une valeur appropriée (par exemple, "*" pour autoriser toutes les origines) à sa réponse. Cet en-tête accorde l'autorisation pour la demande.

Prévision avec la demande OPTIONS

Pour contrôler en amont une demande, le navigateur envoie une demande supplémentaire en utilisant la méthode HTTP OPTIONS avant la demande réelle. demande. Cette requête comprend les en-têtes suivants :

  • Access-Control-Request-Method : spécifie la méthode utilisée pour la requête réelle (par exemple, POST, GET).
  • Access-Control- Request-Headers : répertorie les en-têtes supplémentaires qui seront utilisés dans la requête réelle (par exemple, X-Custom-Header).

Réponse du serveur à la demande de contrôle en amont

Le serveur doit reconnaître ces en-têtes de contrôle en amont dans sa réponse. Si la demande est autorisée, la réponse doit inclure :

  • Access-Control-Allow-Origin : même valeur que dans la demande de contrôle en amont.
  • Access-Control-Allow-Methods : Liste des méthodes autorisées.
  • Access-Control-Allow-Headers : Liste des en-têtes autorisés.

Essentiellement, l'en-tête "Access-Control-Allow-Headers" doit not avoir la valeur "*", mais il doit correspondre aux en-têtes spécifiés dans l'en-tête "Access-Control-Request-Headers".

Une fois que le serveur envoie cette réponse à la requête de contrôle en amont, le Le navigateur fera la demande réelle.

Ressources supplémentaires

Pour des informations plus complètes sur CORS, reportez-vous à la documentation HTML5 Rocks à l'adresse : http://www.html5rocks. com/fr/tutoriels/cors/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn