Weiß jemand, wie man einen benutzerdefinierten HTTP-Header mit JavaScript oder jQuery hinzufügt oder erstellt?
Weiß jemand, wie man einen benutzerdefinierten HTTP-Header mit JavaScript oder jQuery hinzufügt oder erstellt?
Es gibt verschiedene Lösungen, je nachdem, was Sie brauchen ...
Wenn Sie einer einzelnen Anforderung einen benutzerdefinierten Header (oder eine Reihe von Headern) hinzufügen möchten, fügen Sie einfach die headers
Eigenschaft hinzu:
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
Wenn Sie jeder Anforderung einen Standardheader (oder eine Reihe von Headern) hinzufügen möchten, verwenden Sie $.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' } });
Wenn Sie jeder Anforderung einen Header (oder eine Reihe von Headern) hinzufügen möchten, verwenden Sie den beforeSend
Hook mit $.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' } });
Bearbeiten (weitere Informationen): Beachten Sie, dass ajaxSetup
Sie mit nur einen Satz von Standardheadern definieren können und nur einen beforeSend
. Wenn Sie ajaxSetup
mehrmals anrufen , wird nur der letzte Satz von Headern gesendet und nur der letzte Rückruf vor dem Senden wird ausgeführt.
beforeSend
beim Ausführen eines ein neues definiere$.ajax
?beforeSend
Rückruf definieren . Wenn Sie$.ajaxSetup({ beforeSend: func... })
zweimal anrufen, wird nur der zweite Rückruf ausgelöst.ajaxSetup
.Wenn Sie den benutzerdefinierten Header für jede zukünftige Anforderung senden möchten, können Sie Folgendes verwenden:
Auf diese Weise enthält jede zukünftige Ajax-Anforderung den benutzerdefinierten Header, sofern dies nicht ausdrücklich durch die Optionen der Anforderung überschrieben wird. Weitere Informationen finden Sie
ajaxSetup
hierquelle
Angenommen, JQuery Ajax, können Sie benutzerdefinierte Header wie - hinzufügen.
quelle
Hier ist ein Beispiel mit XHR2:
Ich hoffe, das hilft.
Wenn Sie Ihr Objekt erstellen, können Sie mit der Funktion setRequestHeader einen Namen und einen Wert zuweisen, bevor Sie die Anforderung senden.
quelle
$.ajax*
Funktionen b / c verwenden, die nicht von jQuery abhängen, und stattdessen XHR verwenden, sodass dies in diesen Fällen die einzig gültige Option ist.Sie können dies auch ohne jQuery tun. Überschreiben Sie die Sendemethode von XMLHttpRequest und fügen Sie dort den Header hinzu:
quelle
Sie sollten die Verwendung von
$.ajaxSetup()
wie in den Dokumenten beschrieben vermeiden . Verwenden Sie stattdessen Folgendes:quelle
Angenommen, Sie meinen "Bei Verwendung von Ajax" und "Ein HTTP- Anforderungsheader ", dann verwenden Sie die
headers
Eigenschaft in dem Objekt, an das Sie übergebenajax()
- http://api.jquery.com/jQuery.ajax/
quelle
Die Methode "setRequestHeader" des XMLHttpRequest-Objekts sollte verwendet werden
http://help.dottoro.com/ljhcrlbv.php
quelle
Sie können js fetch verwenden
Code-Snippet anzeigen
quelle