我正在使用 jquery 库来加载 html 文件的内容。像这样的东西:
$("#Main").load("login.html")
如果文件(在本例中为“login.html”)不存在,我想检测它,以便可以将用户重定向到错误页面。有什么想法可以检测到要加载的文件是否存在?
您可以使用 ajaxComplete 事件,whis 让您可以访问 xhr 对象,您可以查询请求的状态,例如状态 404 将意味着文件不存在。
文档中的更多信息http://docs.jquery.com/Ajax/ajaxComplete#callback
在这里测试http://pastebin.me/48f32a74927bb
例如
$("#someDivId").ajaxComplete(function(request, settings){
if (settings.status===404){
//redirect here
}
});
@PConroy 的解决方案有效,但它对所有失败的 ajax 请求执行相同的操作。
如果您在每个请求的基础上都需要这个 - 即,如果第一个请求失败它会转到 X 页,如果第二个请求失败转到 Y,那么您需要使用 $.ajax 函数中的错误句柄来执行此操作:
(编辑:http: //jsbin.com/iwume/edit)