获取JSON.stringify错误消息

时间:2013-12-18 22:30:56

标签: ajax jquery

尝试使用ajax调用REST服务时出错。我正试图追查错误。 xhr.message总是以未定义的形式出现。有没有更好的方法来获取有关错误原因的确切消息?

$.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 个答案:

答案 0 :(得分:2)

首先,您应该使用较新的(不推荐的)格式来进行ajax调用

  

弃用注意:从jQuery 1.8开始,不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。要准备最终删除的代码,请改用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进行相同操作,然后检查控制台以查看返回的内容以及要检索的内容。