Maison > interface Web > js tutoriel > Comment envoyer des en-têtes personnalisés dans les requêtes AJAX POST avec jQuery ?

Comment envoyer des en-têtes personnalisés dans les requêtes AJAX POST avec jQuery ?

Patricia Arquette
Libérer: 2024-11-05 11:45:02
original
986 Les gens l'ont consulté

How to Send Custom Headers in AJAX POST Requests with jQuery?

En-têtes personnalisés dans les requêtes AJAX POST avec jQuery

Dans les requêtes AJAX POST initiées avec jQuery, il est possible d'inclure des en-têtes personnalisés. Cependant, le mécanisme d'ajout d'en-têtes diffère de l'approche typique.

Lorsque vous spécifiez les en-têtes comme indiqué dans l'exemple :

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
}).done(function(data) {
    alert(data);
});
Copier après la connexion

Naturellement, vous vous attendez à ce que les en-têtes soient envoyés comme :

My-First-Header: first value
My-Second-Header: second value
Copier après la connexion

Cependant, les mesures de sécurité du navigateur empêchent d'envoyer les valeurs d'en-tête personnalisées directement dans la requête initiale. Au lieu de cela, ils sont placés dans l’en-tête Access-Control-Request-Headers. Il s'agit d'un mécanisme de sécurité connu sous le nom de demande de contrôle en amont.

Pour permettre à la demande suivante d'inclure les valeurs d'en-tête réelles, le serveur doit configurer les en-têtes CORS (Cross-Origin Resource Sharing) nécessaires.

Une solution à ce problème consiste à envoyer les en-têtes d'une manière différente, comme indiqué dans l'exemple de code donné :

$.ajax({
  type: "POST",
  beforeSend: function(request) {
    request.setRequestHeader("Authority", authorizationToken);
  },
  url: "entities",
  data: "json=" + escape(JSON.stringify(createRequestObject)),
  processData: false,
  success: function(msg) {
    $("#results").append("The result =" + StringifyPretty(msg));
  }
});
Copier après la connexion

Cette approche définit en fait directement les valeurs d'en-tête de la requête, en contournant l'accès. Placement des en-têtes de demande de contrôle. Il fournit un moyen d'envoyer des en-têtes personnalisés avec la requête initiale sans nécessiter de configuration du serveur.

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.cn
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