提醒

2012-06-20 110 views
0
function girisAjaxKontrol() { 
var kullanici = { 'kullaniciAdi': $('#username').val(), 'sifre': $('#password').val() }; 

$.ajax({ 
    url: '/Giris/GirisGecerliMi', 
    type: 'POST', 
    data: kullanici, 
    success: girisAjaxReturn, 
    error: function (error) { 
     alert(error.toString());    
    } 
}); 

當}調試的ASP.NET MVC4項目時提醒

一切正常,奇怪的Ajax錯誤響應。但是,在發佈後,上面的代碼塊將以「[object Object]」的形式返回警報消息。爲什麼錯誤消息不是字符串,以及爲什麼發佈後它不起作用?

+0

'$ .ajax'上的'jQuery' [** api documentation **](http://api.jquery.com/jQuery.ajax/)解釋瞭如何捕獲錯誤文本。 –

回答

1

jQuery.ajax的.error()事件()接受三個參數:

the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a string describing the type of error that occurred and an optional exception object, if one occurred. - More about jQuery.ajax() here .

你.error()事件接受一個參數,它自動的jQuery作爲jQXHR對象讀出。要看到它的警報中,嘗試做這樣的事情:

alert(JSON.stringify(error)); 

或者,你可能要返回錯誤的描述:

error: function(error, textStatus) { 
    alert(textStatus); 
} 

異常對象只有當一個HTTP返回發生了錯誤。

+0

謝謝,這是我需要的。 – serefbilge

1

$.ajax()返回遞延對象的error事件處理程序有三個參數:

error : function (jqXHR, textStatus, errorThrown) { } 

既然你只function (error) { }您的錯誤處理程序聲明,實際上是提醒了在使用原始的XHR對象AJAX呼叫。

如果你想檢查整個對象,你可以試試console.log(error)你的函數,或嘗試使用JSON.stringify(error)將它轉換成JSON字符串,然後提醒。

或者,您還可以檢查傳入錯誤處理程序的第二個或第三個參數。我個人喜歡爲了簡潔而簽署我的錯誤函數,如function (x,s,e) {}