Czy ktoś wie, jak dodać lub utworzyć niestandardowy nagłówek HTTP za pomocą JavaScript lub jQuery?
324
Czy ktoś wie, jak dodać lub utworzyć niestandardowy nagłówek HTTP za pomocą JavaScript lub jQuery?
Istnieje kilka rozwiązań w zależności od potrzeb ...
Jeśli chcesz dodać niestandardowy nagłówek (lub zestaw nagłówków) do pojedynczego żądania, po prostu dodaj headers
właściwość:
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
Jeśli chcesz dodać domyślny nagłówek (lub zestaw nagłówków) do każdego żądania, użyj $.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' } });
Jeśli chcesz dodać nagłówek (lub zestaw nagłówków) do każdego żądania, użyj beforeSend
haka z $.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' } });
Edycja (więcej informacji): Należy pamiętać, że dzięki ajaxSetup
niemu możesz zdefiniować tylko jeden zestaw domyślnych nagłówków i możesz zdefiniować tylko jeden beforeSend
. Jeśli zadzwonisz ajaxSetup
wiele razy, zostanie wysłany tylko ostatni zestaw nagłówków i zostanie wykonane tylko ostatnie wywołanie zwrotne przed wysłaniem.
beforeSend
podczas robienia$.ajax
?beforeSend
zwrotne. Jeśli zadzwonisz$.ajaxSetup({ beforeSend: func... })
dwa razy, to drugie oddzwanianie będzie jedynym, który uruchomi połączenie.ajaxSetup
.Lub, jeśli chcesz wysłać niestandardowy nagłówek dla każdego przyszłego żądania, możesz użyć następujących opcji:
W ten sposób każde przyszłe żądanie ajax będzie zawierać niestandardowy nagłówek, chyba że zostanie wyraźnie zastąpione przez opcje żądania. Więcej informacji znajdziesz
ajaxSetup
tutajźródło
Zakładając, że JQuery ajax, możesz dodać niestandardowe nagłówki, takie jak -
źródło
Oto przykład z użyciem XHR2:
Mam nadzieję, że to pomaga.
Jeśli tworzysz swój obiekt, możesz użyć funkcji setRequestHeader, aby przypisać nazwę i wartość przed wysłaniem żądania.
źródło
$.ajax*
funkcji b / c, nie zależą od jQuery i zamiast tego używają XHR, więc jest to jedyna poprawna opcja w takich przypadkach.Możesz to również zrobić bez użycia jQuery. Zastąp metodę wysyłania XMLHttpRequest i dodaj tam nagłówek:
źródło
Powinieneś unikać używania
$.ajaxSetup()
zgodnie z opisem w dokumentacji . Zamiast tego użyj następujących opcji:źródło
Zakładając, że masz na myśli „Gdy używasz ajax” i „ Nagłówek żądania HTTP ”, użyj
headers
właściwości w przekazanym obiekcieajax()
- http://api.jquery.com/jQuery.ajax/
źródło
Należy użyć metody „setRequestHeader” obiektu XMLHttpRequest
http://help.dottoro.com/ljhcrlbv.php
źródło
Możesz użyć pobierania js
Pokaż fragment kodu
źródło