jQuery를 사용하여 AJAX GET에서 요청 헤더를 전달하려고합니다. 다음 블록에서 “data”는 쿼리 문자열의 값을 자동으로 전달합니다. 대신 요청 헤더에 해당 데이터를 전달하는 방법이 있습니까?
$.ajax({
url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
data: { signature: authHeader },
type: "GET",
success: function() { alert('Success!' + authHeader); }
});
다음은 작동하지 않았습니다.
$.ajax({
url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
beforeSend: { signature: authHeader },
async: false,
type: "GET",
success: function() { alert('Success!' + authHeader); }
});
답변
사용 beforeSend
:
$.ajax({
url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
data: { signature: authHeader },
type: "GET",
beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},
success: function() { alert('Success!' + authHeader); }
});
http://api.jquery.com/jQuery.ajax/
http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method
답변
jQuery 1.5부터 headers
다음과 같이 전달할 수 있는 해시가 있습니다.
$.ajax({
url: "/test",
headers: {"X-Test-Header": "test-value"}
});
에서 http://api.jquery.com/jQuery.ajax :
헤더 (1.5 추가) : 요청과 함께 전송할 추가 헤더 키 / 값 쌍의 맵입니다. 이 설정은 beforeSend 함수가 호출되기 전에 설정됩니다. 따라서 헤더 설정의 모든 값을 beforeSend 함수 내에서 덮어 쓸 수 있습니다.
답변
$.ajax({
url: URL,
type: 'GET',
dataType: 'json',
headers: {
'header1': 'value1',
'header2': 'value2'
},
contentType: 'application/json; charset=utf-8',
success: function (result) {
// CallBack(result);
},
error: function (error) {
}
});