当ajax请求能够从服务器获得某些响应时,似乎只有成功,错误和完整回调才会触发。检查jQuery ajax请求的状态
因此,如果我关闭服务器,则不会执行以下错误回调,并且请求会自动失败。
$.ajax({
type: "GET",
url: "http://localhost:3000/",
dataType: "script",
success: function() {
alert("success");
},
error: function() {
alert("error");
}
});
根本找不到服务器时抛出错误的最佳方法是什么?
编辑 - 从我试过看,看来jQuery的内置错误处理不适用于JSONP或dataType:“脚本”。所以我会尝试设置手动超时。
编辑 - 做了更多的研究,看起来不仅ajax错误回调不起作用,但你不能放弃与dataType脚本或jsonp的ajax请求,并且这些请求忽略超时设置。
还有一种替代方案 - jquery-jsonp插件,但它使用隐藏的iframe,我宁愿避免。所以我决定创建一个手动超时,如下所示。如果请求超时,则不能中止请求,这意味着即使在超时之后,脚本仍可能会加载,但如果服务器不可用,至少会触发一些事件。
jQuery的ajax内置错误处理(请参阅下面的答案),您可以使用ajaxsetup来应用这些选项。 – Sphvn 2010-07-02 04:48:25