如果Ajax请求失败,我希望捕获错误并显示相应的消息。
我的代码类似于以下代码,但是我无法捕获失败的Ajax请求。
function getAjaxData(id)
{
$.post("status.ajax.php", {deviceId : id}, function(data){
var tab1;
if (data.length>0) {
tab1 = data;
}
else {
tab1 = "Error in Ajax";
}
return tab1;
});
}
我发现,当Ajax请求失败时,"Error in Ajax“永远不会执行。
如何处理Ajax错误并在失败时显示相应的消息?
发布于 2010-05-14 20:11:53
从jQuery 1.5开始,您可以使用延迟对象机制:
$.post('some.php', {name: 'John'})
.done(function(msg){ })
.fail(function(xhr, status, error) {
// error handling
});
另一种方法是使用.ajax
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("some error");
}
});
发布于 2012-08-25 05:17:37
jQuery 1.5添加了延迟对象,很好地处理了这一点。只需调用$.post
并在调用后附加任何您想要的处理程序。延迟对象甚至允许您附加多个成功和错误处理程序。
示例:
$.post('status.ajax.php', {deviceId: id})
.done( function(msg) { ... } )
.fail( function(xhr, textStatus, errorThrown) {
alert(xhr.responseText);
});
在jQuery 1.8之前,函数done
称为success
,fail
称为error
。
发布于 2010-05-14 20:12:38
$.ajax({
type: 'POST',
url: 'status.ajax.php',
data: {
deviceId: id
},
success: function(data){
// your code from above
},
error: function(xhr, textStatus, error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
https://stackoverflow.com/questions/2833951
复制相似问题