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!