Quelqu'un sait-il comment ajouter ou créer un en-tête HTTP personnalisé en utilisant JavaScript ou jQuery?
Quelqu'un sait-il comment ajouter ou créer un en-tête HTTP personnalisé en utilisant JavaScript ou jQuery?
Il existe plusieurs solutions en fonction de vos besoins ...
Si vous souhaitez ajouter un en-tête personnalisé (ou un ensemble d'en-têtes) à une demande individuelle, ajoutez simplement la headers
propriété:
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
Si vous souhaitez ajouter un en-tête par défaut (ou un ensemble d'en-têtes) à chaque demande, utilisez $.ajaxSetup()
:
$.ajaxSetup({
headers: { 'x-my-custom-header': 'some value' }
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Overwrites the default header with a new header
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
Si vous souhaitez ajouter un en-tête (ou un ensemble d'en-têtes) à chaque demande, utilisez le beforeSend
hook avec $.ajaxSetup()
:
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('x-my-custom-header', 'some value');
}
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Sends both custom headers
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
Modifier (plus d'informations): Une chose à savoir est qu'avec ajaxSetup
vous, vous ne pouvez définir qu'un seul ensemble d'en-têtes par défaut et vous ne pouvez en définir qu'un beforeSend
. Si vous appelez ajaxSetup
plusieurs fois, seul le dernier ensemble d'en-têtes sera envoyé et seul le dernier rappel avant envoi sera exécuté.
beforeSend
lors de la réalisation d'un$.ajax
?beforeSend
rappel. Si vous appelez$.ajaxSetup({ beforeSend: func... })
deux fois, le deuxième rappel sera le seul à se déclencher.ajaxSetup
.Ou, si vous souhaitez envoyer l'en-tête personnalisé pour chaque demande future, vous pouvez utiliser ce qui suit:
De cette façon, chaque future demande ajax contiendra l'en-tête personnalisé, à moins qu'elle ne soit explicitement remplacée par les options de la demande. Vous pouvez trouver plus d'informations
ajaxSetup
icila source
En supposant que JQuery ajax, vous pouvez ajouter des en-têtes personnalisés comme -
la source
Voici un exemple d'utilisation de XHR2:
J'espère que cela pourra aider.
Si vous créez votre objet, vous pouvez utiliser la fonction setRequestHeader pour attribuer un nom et une valeur avant d'envoyer la demande.
la source
$.ajax*
fonctions b / c, elles ne dépendent pas de jQuery et utilisent plutôt XHR, c'est donc la seule option valable dans ces cas.Vous pouvez également le faire sans utiliser jQuery. Remplacez la méthode d'envoi de XMLHttpRequest et ajoutez-y l'en-tête:
la source
Vous devez éviter l'utilisation de
$.ajaxSetup()
comme décrit dans la documentation . Utilisez plutôt ce qui suit:la source
En supposant que vous voulez dire «lors de l'utilisation d'ajax» et «un en- tête de requête HTTP », utilisez ensuite la
headers
propriété de l'objet vers lequel vous passezajax()
- http://api.jquery.com/jQuery.ajax/
la source
La méthode "setRequestHeader" de l'objet XMLHttpRequest doit être utilisée
http://help.dottoro.com/ljhcrlbv.php
la source
Vous pouvez utiliser js fetch
Afficher l'extrait de code
la source