2013-12-18 58 views
0

嘗試使用ajax調用REST服務時出現錯誤。我試圖找出錯誤。 xhr.message總是以未定義的形式出現。有沒有更好的方法來獲得確切的消息,爲什麼它是錯誤的?獲取JSON.stringify錯誤消息

$.ajax({ 
    url: 'myurl.com/post/', 
    type: 'post', 
    data: query, 
    cache: false, 
    error: function (xhr, status, error) { 
     alert(JSON.stringify(xhr.message)); 
     alert(JSON.stringify(status)); 
     alert(JSON.stringify(error)); 
    } 
}); 
+1

但爲什麼它應該被定義?原生XMLHttpRequest和jQuery提供的超集都沒有提及任何'message'屬性。 – raina77ow

回答

2

首先,你應該使用較新的(非推薦)格式,使Ajax調用

棄用通知:jqXHR.success(),jqXHR.error(),和jqXHR .complete()回調從jQuery 1.8開始不推薦使用。要準備代碼以便最終刪除它們,請改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

下面是一個例子:

$.ajax({ 
    url: 'myurl.com/post/', 
    type: 'post', 
    data: query, 
    cache: false 
}) 
.done(function(data) { 
    alert(JSON.stringify(data)); 
}) 
.fail(function (xhr, status, error) { 
    alert(JSON.stringify(xhr.message)); 
    alert(JSON.stringify(status)); 
    alert(JSON.stringify(error)); 
}); 

其次,message不是$.ajax調用的屬性(我不覺得嗎?);它是你想要的status,它只是一個文本字符串。嘗試console.log(status),而xhrerror也是如此,然後檢查控制檯以查看返回的內容以及要檢索的內容。