jquery ajax帖子让我回答错误'在超时发生之前

时间:2014-01-20 06:09:48

标签: javascript jquery ajax

jQuery在超时发生之前返回'false'。我必须调用API,这需要很长时间才能得到结果。所以我把超时改为5分钟。当API花费很短的时间(大约不到1分钟)时,它就可以工作了。但是,如果服务器API需要很长时间(大约2到3分钟),页面不会显示任何内容。而且,超时错误触发器根本不起作用。它默默地没有给我任何东西。在调试代码之后,我发现ajax只是在超时限制的2到3分钟后返回'false'(值为false)。

这不是服务器问题。我检查了服务器日志。其他客户端(我已使用chrome plugin postman)在此API上返回正确的值,即使API需要2到3分钟。

我无法弄清楚为什么会发生这种情况。我认为浏览器存在超时限制。但 'postman'也只是在chrome下运行的网页。在jQuery ajax中除了'timeout'属性之外还有隐藏的设置吗?我现在找不到那种东西了。 提前感谢您的帮助。

以下是我使用的代码。

$(function() {
    $('#layerBtn').click(function(){
        $("#contents_body").html("");
        $.ajax({
            data: '',
            url: '/some/where',
            type: 'POST',
            dataType: 'json',
            timeout : 300000,
            success: function(result){
                $("#contents_body").append(beautify(result));
            },
            error : function(x,t,m){
                if(t==="timeout"){
                    alert("got timeout."+t)
                } else{
                    alert(t)
                }
            }
        });
    });
});

0 个答案:

没有答案