Maison > interface Web > js tutoriel > Comment contrôler en amont les requêtes HTTP pour gérer les appels XMLHttpRequest inter-domaines ?

Comment contrôler en amont les requêtes HTTP pour gérer les appels XMLHttpRequest inter-domaines ?

Barbara Streisand
Libérer: 2024-10-18 21:53:30
original
325 Les gens l'ont consulté

How to Preflight HTTP Requests to Handle Cross-Domain XMLHttpRequest Calls?

CORS : Comment contrôler en amont les requêtes HTTP

Lorsque vous travaillez avec des requêtes HTTP inter-domaines, tirez parti de techniques telles que l'implémentation d'une balise de script dynamique dont la source Il est possible qu'une URL de requête GET ne soit pas toujours réalisable, en particulier pour les services prenant en charge à la fois les méthodes GET et POST. Par conséquent, une solution de contournement efficace consiste à configurer les réponses du serveur pour inclure l'en-tête "Access-Control-Allow-Origin" et les requêtes de contrôle en amont avec une requête OPTIONS.

Lors de la requête de contrôle en amont OPTIONS, le navigateur inclut deux en-têtes : Access- Méthode de demande de contrôle et en-têtes de demande de contrôle d'accès. Ces en-têtes indiquent les méthodes et les en-têtes que le client a l'intention d'utiliser dans la requête réelle.

Pour réussir le contrôle en amont de la requête, le serveur doit accuser réception de ces en-têtes dans sa réponse de contrôle en amont. Par exemple, si le navigateur envoie les en-têtes suivants lors de la demande de contrôle en amont :

<code class="console">Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header</code>
Copier après la connexion

La réponse de contrôle en amont du serveur doit inclure les en-têtes suivants :

<code class="console">Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header</code>
Copier après la connexion

Essentiellement, le "Access-Control -Allow-Headers" l'en-tête de réponse doit inclure les mêmes en-têtes spécifiés dans l'en-tête de requête "Access-Control-Request-Headers", et il ne doit pas contenir le caractère générique '*'.

Une fois que le serveur envoie ceci réponse de contrôle en amont, le navigateur procédera à la demande réelle. Pour plus d'informations et d'exemples sur la mise en œuvre de CORS, reportez-vous à des ressources telles que html5rocks.com/en/tutorials/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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal