是否可以在PhantomJS中设置Ajax-Requests的超时

时间:2014-12-24 18:03:07

标签: ajax phantomjs

我正在使用PhantomJS中的ajax-Requests做一些事情。不幸的是,PhantomJS网页中的ajax-Requests有超时30秒。

我一直在尝试在timeout - 设置中设置$.ajax属性。不幸的是,这似乎完全被忽略了。同样如下:

$.ajaxSetup({
    timeout: 120000
});

然后是ExtJS框架扩展。遗憾的是,Ext在PhantomJS WebPage中未定义。所以这不起作用。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

由于$.ajaxSetup设置默认值,因此不能用于覆盖现有的"设置"或ajax设置timeout的请求。看来,您可以使用$.ajaxPrefilter覆盖。

根据评论,这必须在页面加载之前完成。我假设在触发DOMContentLoaded时尚未发送第一个ajax请求。

page.onLoadStarted = function(){
    page.evaluate(function(){
        document.addEventListener('DOMContentLoaded', function(){
            $.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
                options.timeout = 120000;
            });
        }, true);
    });
};