2013-12-18 139 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也是如此,然后检查控制台以查看返回的内容以及要检索的内容。