gpt4 book ai didi

javascript - Extjs 4.2 创建一个全局数据错误处理,它将被实现覆盖

转载 作者:行者123 更新时间:2023-11-28 01:48:14 26 4
gpt4 key购买 nike

我想为从 JavaScript 代码调用的 REST API 创建通用错误处理。

每当 HTTP 状态大于 200 时,我都会向客户端显示带有错误消息的警报。

这是我到目前为止所做的:

// sets the default application settings.
setAppDefaultsSettings: function () {
Ext.Ajax.timeout = 120000;
Ext.Ajax.on('requestexception', this.onRequestException, this);
}, // eo setAppDefaultsSettings

/// fires when an error occurs on an HTTP request.
onRequestException: function (conn, response, options, eOpts) {
switch (response.status) {
case 401: return Nip.utils.handle401Error(conn, response, options, eOpts); // Unauthorized
case 403: return Nip.utils.handle403Error(conn, response, options, eOpts); // Forbidden
case 404: return Nip.utils.handle404Error(conn, response, options, eOpts); // Not Found
case 405: return Nip.utils.handle405Error(conn, response, options, eOpts); // Method Not Allowed
case 408: return Nip.utils.handle408Error(conn, response, options, eOpts); // Request Timeout
case 409: return Nip.utils.handle409Error(conn, response, options, eOpts); // Conflict
case 410: return Nip.utils.handle410Error(conn, response, options, eOpts); // Gone
case 500: return Nip.utils.handle500Error(conn, response, options, eOpts); // Internal Server Error
case 501: return Nip.utils.handle501Error(conn, response, options, eOpts); // Not Implemented
case 502: return Nip.utils.handle502Error(conn, response, options, eOpts); // Bad Gateway
case 503: return Nip.utils.handle503Error(conn, response, options, eOpts); // Service Unavailable
case 504: return Nip.utils.handle504Error(conn, response, options, eOpts); // Gateway Timeout
default: return Nip.utils.handleGeneralError(conn, response, options, eOpts);
}
}, // eo onRequestException

这很有效,问题是我无法在需要不同处理的实现上覆盖此行为。

我如何声明在我的代理之一上,404 返回不应调用通用错误处理,例如......

谢谢

最佳答案

您可以使用 suspendEvent与resumeEvent 一起。尝试在发送 ajax 请求之前暂停 requestException,然后再恢复。
使用此方法时可能会遇到的一个问题是,同时调用不同的 ajax 调用,某些调用需要事件,而其他调用则不需要。

另一种可能更简洁的方法是创建扩展Ext.Ajax,并创建一个新类Nip.Ajax,其中包括您的自定义异常处理,然后在您的代码中,您可以根据请求异常处理的要求调用Ext.AjaxNip.Ajax

关于javascript - Extjs 4.2 创建一个全局数据错误处理,它将被实现覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20030319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com