Maison >interface Web >js tutoriel >Comment contrôler en amont une requête HTTP pour le partage de ressources entre origines croisées (CORS) ?
CORS : contrôle en amont des requêtes HTTP
Le partage de ressources d'origine croisée (CORS) pose des limitations sur les requêtes HTTP inter-domaines. Pour relever ces défis, des demandes de contrôle en amont peuvent être utilisées. Dans ce contexte, les requêtes de contrôle en amont impliquent l'envoi d'une requête OPTIONS au serveur avant que la requête réelle ne soit effectuée. Cela permet au serveur de vérifier que la requête est autorisée et de fournir les autorisations nécessaires.
Comment contrôler en amont une requête
Le contrôle en amont d'une requête HTTP implique l'envoi d'une requête OPTIONS avec des en-têtes spécifiques, indiquant la méthode souhaitée et les en-têtes de la demande réelle. Le serveur répond avec des en-têtes accordant ou refusant les autorisations de demande.
Réponse de contrôle en amont côté serveur
Le serveur doit répondre aux demandes de contrôle en amont avec les en-têtes suivants :
Demande de contrôle en amont côté client
Dans jQuery, la technique suivante peut être utilisée pour contrôler en amont une demande :
<code class="javascript">$.ajax({ url: yourUrl, type: 'OPTIONS', success: function(data, status) { // Extract and verify the preflight response headers var origin = data.getResponseHeader('Access-Control-Allow-Origin'); var methods = data.getResponseHeader('Access-Control-Allow-Methods'); var headers = data.getResponseHeader('Access-Control-Allow-Headers'); // Proceed with the actual request only if permissions are granted if (origin === 'http://mydomain.com' && methods.indexOf('POST') !== -1 && headers.indexOf('X-Custom-Header') !== -1) { // Make the actual request } else { // Handle the error and deny the request } } });</code>
En mettant en œuvre ces modifications, vous pouvez vous assurer que vos requêtes HTTP inter-domaines sont vérifiées en amont et peuvent se poursuivre sans l'intervention du navigateur.
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!