extjs - Ext Js (4) - AJAX - 超时回调函数?

标签 extjs

我想要一个在 AJAX 请求超时时调用的函数,例如:

Ext.override(Ext.data.proxy.Ajax, {
    timeout: 60000,
    onTimeout: function () {
        alert("Sorry, the request timed out. Please try again.");
    }
});

假设超时将被处理为错误/失败,我也尝试过:

Ext.override(Ext.data.proxy.Ajax, {
    timeout: 60000,
    failure: function () {
        alert("Sorry, the request timed out. Please try again.");
    }
});

但似乎 failure 仅在返回 HTTP 状态代码(且不等于 200)时才会触发。

我确实在互联网上搜索了解决方案,但似乎没有像 onTimeoutonCancel 这样的东西。

对此有何建议,我如何实现这样的全局功能?

最佳答案

使用exception监听器并检查请求状态是否等于 0:

proxy: {
    type: 'ajax',
    // ....
    listeners: {
        'exception': function(proxy, request) {
            if (request.status === 0) {
                timeoutCallback();
            }
        }
    }
}

示例:https://fiddle.sencha.com/#fiddle/qt7

关于extjs - Ext Js (4) - AJAX - 超时回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31561211/

相关文章:

java - EXTJS - Java 服务器可以调用浏览器前端吗?

javascript - 使用管理仪表板模板将内容添加到面板

javascript - 记住 selectfield sencha touch

GWT - GXT - 如何获取单选按钮值?

html - ExtJS -- 如何呈现 html 元素

javascript - 如何在 ExtJS(和 Sencha 架构师)的 GridPanel 中显示嵌套对象?

javascript - 网格中的按键或按键事件处理

image - ExtJS 4 在模态窗口中显示图片

java - 无法使用 Jackson 反序列化实例

internet-explorer - 当我在文本字段中按Enter键时,需要停止什么事件才能阻止 “Dinging”中的IE?