Maison  >  Article  >  interface Web  >  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
Barbara Streisandoriginal
2024-10-18 21:53:30220parcourir

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>

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>

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!

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