我正在尝试使用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); } });
然后我使用Requestly(请求是chrome + firefox插件,我们可以手动为请求添加标题)。
手动添加标题后: -
在两个图片请求标题中,x-auth-token出现在“ACCESS-CONTROL-REQUEST-HEADERS”中,但是“X-AUTH-TOKEN”标题以及标题值出现在第二张pic中,而第二张图片中没有第一张照片。
所以我的问题是如何使用JQuery在Ajax中添加请求头?
答案 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' });