복붙노트

[JQUERY] 어떻게 JS 또는 jQuery로 아약스 요청에 사용자 지정 HTTP 헤더를 추가 할 수 있습니까?

JQUERY

어떻게 JS 또는 jQuery로 아약스 요청에 사용자 지정 HTTP 헤더를 추가 할 수 있습니까?

해결법


  1. 1.당신이 필요에 따라 여러 가지 해결책이 있습니다 ...

    당신이 필요에 따라 여러 가지 해결책이 있습니다 ...

    개별 요청에 사용자 정의 헤더 (또는 헤더 세트)를 추가 할 경우 단지 헤더 속성을 추가 :

    // Request with custom header
    $.ajax({
        url: 'foo/bar',
        headers: { 'x-my-custom-header': 'some value' }
    });
    

    당신은 모든 요청에 ​​기본 헤더 (또는 헤더 세트)를 추가 할 경우 $ .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' } });
    

    당신은 모든 요청에 ​​헤더 (또는 헤더 세트)를 추가 할 경우 $ .ajaxSetup ()와 beforeSend 후크를 사용 :

    $.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' } });
    

    편집 (추가 정보) : 한 가지주의해야 할이 ajaxSetup 당신은 기본 헤더의 한 세트를 정의 할 수 있습니다 당신은 하나의 beforeSend를 정의 할 수 있다는 것입니다. 당신이 ajaxSetup를 여러 번 호출 할 경우, 헤더의 마지막 세트가 전송되며, 마지막 전에 보내 콜백이 실행됩니다.


  2. 2.당신은 모든 미래의 요청에 대한 사용자 정의 헤더를 보낼 경우 또는, 당신은 다음을 사용할 수 있습니다 :

    당신은 모든 미래의 요청에 대한 사용자 정의 헤더를 보낼 경우 또는, 당신은 다음을 사용할 수 있습니다 :

    $.ajaxSetup({
        headers: { "CustomHeader": "myValue" }
    });
    

    명시 적으로 요청의 옵션에 의해 무시하지 않는 한이 방법은 모든 미래 아약스 요청은 사용자 정의 헤더가 포함됩니다. 여기 ajaxSetup에 대한 자세한 정보를 찾을 수 있습니다


  3. 3.JQuery와 아약스를 가정하면, 같은 사용자 정의 헤더를 추가 할 수 있습니다 -

    JQuery와 아약스를 가정하면, 같은 사용자 정의 헤더를 추가 할 수 있습니다 -

    $.ajax({
      url: url,
      beforeSend: function(xhr) {
        xhr.setRequestHeader("custom_header", "value");
      },
      success: function(data) {
      }
    });
    

  4. 4.여기 XHR2를 사용하는 예는 다음과 같습니다

    여기 XHR2를 사용하는 예는 다음과 같습니다

    function xhrToSend(){
        // Attempt to creat the XHR2 object
        var xhr;
        try{
            xhr = new XMLHttpRequest();
        }catch (e){
            try{
                xhr = new XDomainRequest();
            } catch (e){
                try{
                    xhr = new ActiveXObject('Msxml2.XMLHTTP');
                }catch (e){
                    try{
                        xhr = new ActiveXObject('Microsoft.XMLHTTP');
                    }catch (e){
                        statusField('\nYour browser is not' + 
                            ' compatible with XHR2');                           
                    }
                }
            }
        }
        xhr.open('POST', 'startStopResume.aspx', true);
        xhr.setRequestHeader("chunk", numberOfBLObsSent + 1);
        xhr.onreadystatechange = function (e) {
            if (xhr.readyState == 4 && xhr.status == 200) {
                receivedChunks++;
            }
        };
        xhr.send(chunk);
        numberOfBLObsSent++;
    }; 
    

    희망이 도움이.

    당신이 당신의 객체를 생성하는 경우, 당신은 당신이 요청을 보내기 전에 이름과 값을 할당 할 setRequestHeader를 기능을 사용할 수 있습니다.


  5. 5.또한 jQuery를 사용하지 않고이 작업을 수행 할 수 있습니다. XMLHttpRequest 객체의 send 메서드를 재정의하고 거기에 헤더를 추가 :

    또한 jQuery를 사용하지 않고이 작업을 수행 할 수 있습니다. XMLHttpRequest 객체의 send 메서드를 재정의하고 거기에 헤더를 추가 :

    XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
    var newSend = function(vData) {
        this.setRequestHeader('x-my-custom-header', 'some value');
        this.realSend(vData);
    };
    XMLHttpRequest.prototype.send = newSend;
    

  6. 6.해당 문서에 설명 된대로) $ .ajaxSetup (의 사용을 피해야한다. 대신 다음을 사용합니다 :

    해당 문서에 설명 된대로) $ .ajaxSetup (의 사용을 피해야한다. 대신 다음을 사용합니다 :

    $(document).ajaxSend(function(event, jqXHR, ajaxOptions) {
        jqXHR.setRequestHeader('my-custom-header', 'my-value');
    });
    

  7. 7."HTTP 요청 헤더를" "아약스를 사용하는 경우"를 뜻한다고 가정하면, 다음) (당신이 아약스에 전달하는 객체의 헤더 속성을 사용하여

    "HTTP 요청 헤더를" "아약스를 사용하는 경우"를 뜻한다고 가정하면, 다음) (당신이 아약스에 전달하는 객체의 헤더 속성을 사용하여

    — http://api.jquery.com/jQuery.ajax/


  8. 8.XMLHttpRequest 객체의 "setRequestHeader를"방법이 사용되어야

    XMLHttpRequest 객체의 "setRequestHeader를"방법이 사용되어야

    http://help.dottoro.com/ljhcrlbv.php


  9. 9.당신은 JS 인출 사용할 수 있습니다

    당신은 JS 인출 사용할 수 있습니다

    비동기 기능 전송 (URL, 데이터) { {(URL을 가져 R = await를 보자 방법 : "POST", 헤더 : { "내 헤더": "ABC" }, 본체 : JSON.stringify (데이터) }) ) (await를 r.json을 반환 } // 사용 예제 URL을하자 = 'HTTPS : //server.test-cors.org/server 가능 = TRUE & 상태 = 200 & 방법 = POST 및 헤더 = 내 헤더'; 비동기 기능 실행 () { jsonObj = await를 전송 (URL, {일부 'testdata로를'})하자; CONSOLE.LOG (jsonObj [0] + .request.httpMethod '는 발송 된 - 오픈 크롬 콘솔> 네트워크는 그것을보고'); } 운영();

  10. from https://stackoverflow.com/questions/7686827/how-can-i-add-a-custom-http-header-to-ajax-request-with-js-or-jquery by cc-by-sa and MIT license