如何在Jquery Ajax中为请求添加头?

时间:2017-01-30 05:44:13

标签: ajax header request-headers jquery-ajaxq

我正在尝试使用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);
    }
});

我用chrome检查了这个,发现没有添加标题的正文。Without Header Body

然后我使用Requestly请求是chrome + firefox插件,我们可以手动为请求添加标题)。

手动添加标题后: -

After Manually Adding the header

在两个图片请求标题中,x-auth-token出现在“ACCESS-CONTROL-REQUEST-HEADERS”中,但是“X-AUTH-TOKEN”标题以及标题值出现在第二张pic中,而第二张图片中没有第一张照片。

所以我的问题是如何使用JQuery在Ajax中添加请求头?

1 个答案:

答案 0 :(得分:26)

根据您的目的,有几种解决方案

  

如果要将自定义标头(或标头集)添加到单个请求,则只需添加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' });
  

为每个请求添加一个标头(或标头集),然后使用带有$ .ajaxSetup()的beforeSend挂钩:

//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