【发布时间】:2011-01-14 01:39:21
【问题描述】:
当您使用 $.get 或 $.post 时,如何捕获服务器错误或 404 页面未找到?
例如:
$.post("/myhandler", { value: 1 }, function(data) {
alert(data);
});
如果加载“/myhandler”时出现服务器错误,或者找不到它,那绝对不会做任何事情。
如果有错误,你如何让它通知你?
【问题讨论】:
当您使用 $.get 或 $.post 时,如何捕获服务器错误或 404 页面未找到?
例如:
$.post("/myhandler", { value: 1 }, function(data) {
alert(data);
});
如果加载“/myhandler”时出现服务器错误,或者找不到它,那绝对不会做任何事情。
如果有错误,你如何让它通知你?
【问题讨论】:
你可以的
$.post("/myhandler", { value: 1 }, function(data) {
alert(data);
}).fail(function(){
// Handle error here
});
如果有错误会调用fail
【讨论】:
【讨论】:
其他答案都很好,但还有其他解决方案,即.ajaxSetup、.ajaxError 和其他 Ajax 事件处理程序(请查看 ajaxSetup 文档页面了解更多信息)。
例如,使用.ajaxError,您可以为一组特定元素设置来自.post、.get、.getJSON 和.ajax 的所有ajax 错误的全局处理程序。
$(selector).ajaxError(function(event, xhr, ajaxOptions, errorThrown) {
// handle ajax error here
});
【讨论】:
改用$.ajax 并使用error 回调。
【讨论】:
尝试使用$.ajaxSetup(),stausCode 选项
$.ajaxSetup({
statusCode : {
// called on `$.get()` , `$.post()`, `$.ajax()`
// when response status code is `404`
404 : function (jqxhr, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
}
});
// $.get("/path/to/url/");
// $.post("/path/to/url/");
// $.ajax({url:"/path/to/url/"})
【讨论】: