我正在使用dojo/request/notify
,以便在发现Ajax callis问题时全局检测错误。
对于调用API,我使用的是dojo/store/JsonRest
。
请求失败时notify
按预期工作,但如果超时notify
不起作用。
我需要检测超时错误。
答案 0 :(得分:1)
看起来dojo不提供开箱即用的选项。
我想到了以下解决方案:
dojo/store/JsonRest
的自定义版本,其中传递timeout
值。dojo/_base/xhr
。XMLHttpRequest
。我选择了解决方案3.下面是一个代码示例:
(function (xhr) {
var send = xhr.send;
xhr.send = function (data) {
this.timeout = 5000;
var hasTimeOut = 'ontimeout' in this;
if (hasTimeOut) {
this.ontimeout = function () {
throw ('Error XMLHttpRequest timeout.');
};
}
return send.apply(this, arguments);
};
})(XMLHttpRequest.prototype);