我一直在看一些beforeSend
回调函数的例子。
这些示例有时使用输入参数:beforeSend:function(req)
或beforeSend:function(xhr)
。
我认为此参数是jquery请求的XMLHTTPRequest
,但是当我尝试这些示例时,似乎xhr
或req
对象是null
。
是否有必要创建xhr
参数并在调用jquery对象的执行之前对其进行初始化?
以下是我正在尝试的查询:
function make_basic_auth(un, pss)
{
var tok = un + ':' + pss;
var hash = Base64.encode(tok);
return "Basic " + hash;
}
$('#loginform').submit(function()
{
$.ajax
(
{
type: 'POST',
url: 'my.ip.address',
beforeSend: function(jqXHR, settings)
{
var username = $('.username').val();
var password = $('.passcode').val();
var auth = make_basic_auth(username, password);
jqXHR.setRequestHeader("Authorization", auth);
jqXHR.setRequestHeader('Content-Type', 'text/plain');
},
success: function (){
alert("ok");
},
error: function (){
alert("no");
}
}
);
});
答案 0 :(得分:1)
检查以下代码:
$.ajax({
url: "google.com",
beforeSend: function(jqXHR, settings) {
jqXHR.error = function(){
alert("failed");
}
}
})
工作示例:http://jsfiddle.net/kXerD/
在这里,我说在发送请求之前,请为此请求添加错误处理程序。 JQuery提供jqXHR的对象和与此请求相关的设置。我们不需要初始化它们。