2017-01-30 7 views
9

Я пытаюсь добавить заголовок для запроса в Ajax с помощью JQuery.Как добавить заголовок для запроса в JQuery Ajax?

Ниже приведен код: -

$.ajax({ 
    type: "POST", 
    contentType: "application/json", 
    url: "http://localhost:8080/core-service/services/v1.0/patients/registerPatients", 
    data: JSON.stringify(patientDTO), 
    //crossDomain : true, 
    dataType: 'json', 
    headers: {"X-AUTH-TOKEN" : tokken}, 
    success: function(patientDTO) { 
     console.log("SUCCESS: ", patientDTO); 
     /* location.href = "fieldagentHRA.html";*/ 
     if (typeof(Storage) !== "undefined") { 
      localStorage.setItem("patUrn", patientDTO.data); 
      location.href="fieldagentHRA.html"; 
     } 
    }, 
    error: function(e) { 
    console.log("ERROR: ", e); 
    display(e); 
    }, 
    done: function(e) { 
    enableRegisterButton(true); 
    } 
});

Я осмотрел это с хромом и нашел тело этого заголовка является не добавляется. Without Header Body

Тогда я использовал Requestly (Requestly является хром + Firefox плагин с помощью которого можно вручную добавить заголовок запроса).

После ручного добавления заголовка: -

After Manually Adding the header

В обоих фотографии заголовка запроса х-аутентификации-маркер присутствует в "Access-Control-Request-Headers", но "X-AUTH-токен" заголовок вместе со значением заголовка присутствует во втором pic, которого нет в первом pic.

Итак, мой вопрос заключается в том, как добавить заголовки запросов в Ajax с помощью JQuery?

ответ

16

Есть несколько решений в зависимости от того, что вы хотите сделать

Если хотите добавить пользовательский заголовок (или набор заголовков) для отдельного запроса, то просто добавьте headers собственность, и это поможет вам для отправки запроса с заголовками.

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

Если хотите добавить заголовок по умолчанию (или набор заголовков) для каждого запроса, то используйте $.ajaxSetup(): это поможет вам добавить заголовки.

//Setup headers here and than call ajax 
$.ajaxSetup({ 
    headers: { 'x-my-custom-header': 'some value' } 
}); 

// Sends your ajax 
$.ajax({ url: 'foo/bar' }); 

добавить заголовок (или набор заголовков) для каждого запроса используйте крюк beforeSend с $ .ajaxSetup():

//Hook your headers here and set it with before send function. 
$.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('x-my-custom-header', 'some value'); 
    } 
}); 

// Sends your ajax 
$.ajax({ url: 'foo/bar' }); 

Reference Link : AjaxSetup

Reference Link : AjaxHeaders

Смежные вопросы