3

我正在使用 jquery 库来加载 html 文件的内容。像这样的东西:

$("#Main").load("login.html")

如果文件(在本例中为“login.html”)不存在,我想检测它,以便可以将用户重定向到错误页面。有什么想法可以检测到要加载的文件是否存在?

4

2 回答 2

12

您可以使用 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
    }
});
于 2008-10-13T10:52:01.270 回答
1

@PConroy 的解决方案有效,但它对所有失败的 ajax 请求执行相同的操作。

如果您在每个请求的基础上都需要这个 - 即,如果第一个请求失败它会转到 X 页,如果第二个请求失败转到 Y,那么您需要使用 $.ajax 函数中的错误句柄来执行此操作:

http://jsbin.com/iwume

(编辑:http: //jsbin.com/iwume/edit

于 2008-10-14T09:32:40.603 回答