首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery不明确的ajax错误

Jquery不明确的ajax错误
EN

Stack Overflow用户
提问于 2009-05-15 02:40:07
回答 4查看 1.4K关注 0票数 3

这是我的ajax调用的核心。

代码语言:javascript
运行
复制
function ajax(path, requestData, successCallBack, errorCallBack) {
    return $.ajax({
        error: function(xhr, textStatus, errorThrown) 
            ç(xhr, textStatus, errorThrown);
        },
        success: function(json){ 
            successCallBack(json);
        }
    });
}

当ajax调用正在进行时,用户单击页面上的链接,就会调用我的errorCallBack。用户导航离开会导致ajax调用被终止。当服务器出现错误时,我的errorCallBack回调也会被调用。

有没有办法区分这两者?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2011-08-08 15:25:02

@colbeerhey的答案是好的,但你可以走得更远。您仍然需要知道服务器是否真的无法访问。我问了here这个问题,但完整的答案是:

代码语言:javascript
运行
复制
var running = true;
$(window).bind('beforeunload', function() { running = false; });

$.ajax({
    /* ajax options omitted */
    error: function (xmlHttpRequest, textStatus, errorThrown) {
         var serverNotReached = xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0;
         if(serverNotReached && !running) 
              return;  // it's not really an error, user clicked away
         else if (serverNotReached)
              // The server is down!  You didn't get any response at all.
         else
              // Do normal error handling
});

请记住,onbeforeunload只是一个事实上的标准(IE FF,Webkit都可以处理它),所以如果你关心更多晦涩难懂的浏览器,它就会崩溃。

票数 3
EN

Stack Overflow用户

发布于 2009-05-15 02:51:14

我正在做的事情也有同样的问题...一个‘取消’的$.ajax请求(用户导航离开/点击停止) xhr.status == 0而不是200/404/等等...

票数 1
EN

Stack Overflow用户

发布于 2009-08-13 00:21:16

下面是我用来实现gnarf和nickf答案的技术:

当用户通过刷新、单击链接或更改浏览器中的URL离开页面时,jQuery将引发error事件。您可以通过为ajax调用实现错误处理程序并检查xmlHttpRequest对象来检测这些类型的错误:

代码语言:javascript
运行
复制
$.ajax({
    /* ajax options omitted */
    error: function (xmlHttpRequest, textStatus, errorThrown) {
         if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) 
              return;  // it's not really an error
         else
              // Do normal error handling
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/866771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档