2012-10-04 136 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'的例子 –

相關問題