尝试使用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));
}
});
答案 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)
,对xhr
和error
进行相同操作,然后检查控制台以查看返回的内容以及要检索的内容。