我在几天内就遇到了这个问题。我想在jQuery.load()中发送一些头文件数据。似乎jQuery.load从不发送标头,如ajax。有人可以解释如何,或者是否有必要?顺便说一下,我的英语不好。
这是语法:
$loadingBay.load(href, settings.data, function (data, status) {
prep(status === 'error' ? $tag(div, 'Error').html(settings.xhrError) : $(this).contents());
});
非常感谢
答案 0 :(得分:5)
您无法将标题数据传递给$.load()
,但您可以使用$.ajaxSetup()
设置默认设置,如下所示:
$.ajaxSetup({
'headers':{
'header1':'value1',
'header2':'value2',
}
}
);
//give the load call here
$('selector').load('url',function(){
//do things
})
免责声明来自jquery doc:
不推荐使用它。
最好的方法是使用$.ajax()
:
$.ajax({
url: "test.html",
headers : {header1 : "header1"}
}).done(function(data) {
$('selector').html(data);
});
答案 1 :(得分:4)
您可以在beforeSend
中使用jquery ajax
选项,如下所示:
$.ajax({
url: "http://localhost/restTest",
data: { uname: "asdf" },
type: "GET",
beforeSend: function(xhr){xhr.setRequestHeader('X-TOKEN', 'xxxxx');},
success: function() { alert('Success!' + authHeader); }
});
或者也可以使用headers
之类的,
$.ajax({
url: "http://localhost/restTest",
data: { uname: "asdf" },
type: "GET",
headers:{ "X-TOKEN": 'xxxxx'},
success: function() { alert('Success!' + authHeader); }
});