2012-10-04 116 views
0

我一直在看到一些beforeSend回调函数的例子。 这些示例有时使用输入参数:beforeSend:function(req)beforeSend:function(xhr)beforeSend jquery函数的参数是什么?

我想,这个参数是jQuery的请求XMLHTTPRequest,但是当我尝试这些例子似乎xhrreq对象null

在调用jquery对象的执行之前,是否需要创建xhr参数并对其进行初始化?

这里是我想查询:

$.ajax({ 
    url: "google.com", 
    beforeSend: function(jqXHR, settings) { 
     jqXHR.error = function(){ 
      alert("failed"); 
     } 
    } 
})​ 

工作例如:下面的代码

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

我建议参考[jQuery文档](http://api.jquery.com/jQuery.ajax/) – MrOBrian

+0

谢谢MrObrian先生,我已阅读过,而且我的问题依然如此。 – Rami

+0

请求是否在没有beforeSend属性集的情况下工作? –

回答

1

结帐http://jsfiddle.net/kXerD/

在这里,我说的是在发送请求之前,为此请求添加一个错误处理程序。 JQuery提供jqXHR的对象和与此请求相关的设置。我们不需要初始化它们。

+0

没人解释'settings'的例子 –

相关问题