weixin_33720186 2014-09-18 12:44 采纳率: 0%
浏览 14

管理超时ajax请求

I would like to manage an ajax call with timeout with .when and .then.

I have a script like this:

$.when(
        $.ajax({   
            url: url_ajax, 
            type: "GET", 
            async: true,
            data: window.location.search, 
            dataType: "json", 
            timeout: 30000,
            success: function(data) {
                console.log('ok');
            },
            error: function(data) {

            }
        }),
        $.ajax({   
            url: url_ajax, 
            type: "GET", 
            async: true,
            data: window.location.search, 
            dataType: "json", 
            success: function(data) {
                console.log('ok');
            },
            timeout: 30000,
            error: function(data) {

            }
        })
     ).then(function() {
          alert('end');
     });

If an ajax request go in timeout the callback .then isn't called and I can't see the last alert. So if my ajax request go in timeout I can't exit enter into then function.

I have also tried to add this after each ajax request:

.fail(function(jqXHR, textStatus){
            if(textStatus == 'timeout')
            {     
                alert('Failed from timeout'); 
            }
         })

But again doesn't enter into then function

How can I manage timeout? Thanks

  • 写回答

1条回答 默认 最新

  • weixin_33726318 2014-09-18 14:14
    关注

    Have you tried using .then(successCallbackFunction, failCallbackFunction) like so:

    $.when(
        $.ajax({   
            url: url_ajax, 
            type: "GET", 
            async: true,
            data: window.location.search, 
            dataType: "json", 
            timeout: 30000,
            success: function(data) {
                console.log('ok');
            },
            error: function(data) {
    
            }
        }),
        $.ajax({   
            url: url_ajax, 
            type: "GET", 
            async: true,
            data: window.location.search, 
            dataType: "json", 
            success: function(data) {
                console.log('ok');
            },
            timeout: 30000,
            error: function(data) {
    
            }
        })
     ).then( // success
             function() {
               alert('Success!');
             },
             // failure
             function(jqXHR, textStatus){
                if(textStatus == 'timeout')
                {     
                    alert('Failed from timeout'); 
                } else {
                    alert('Failed from: '+textStatus);
                }
             }
     );
    
    评论

报告相同问题?

悬赏问题

  • ¥15 请问如何在openpcdet上对KITTI数据集的测试集进行结果评估?
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错