[jquery] jQuery AJAX GET 호출에서 요청 헤더 전달

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) {

            }
        });


답변