gpt4 book ai didi

extjs - Ext.Ajax.request() 在请求成功时调用失败回调函数

转载 作者:行者123 更新时间:2023-12-04 23:07:47 24 4
gpt4 key购买 nike

我正在为 iOS 和 Android 平台构建 PhoneGap - Sencha-touch 应用程序。我正在使用 Ext.Ajax.request() 函数加载本地 .js 文件。

有趣的事情发生了 - 请求成功,但调用了“失败”回调。
这是代码:

   Ext.Ajax.request({
url: 'localfolder/foo.js',
success : function(xhr){
// not invoked
},
failure : function(response, options){
// response.status == 0
// wtf, response.responseText contains exactly the contents of the local .js file!
}
});

任何人都知道为什么实际上请求成功时会触发“失败”回调?
[编辑]
更重要的是,如何使“成功”回调被触发?

最佳答案

Ext.Ajax 只是检查它创建的底层 XHR (XmlHttpRequest) 对象的状态代码。但是,它(错误地)假定状态是 HTTP 状态。像这样Mozilla-provided article讨论,当使用 file: 或 ftp: 方案时,状态值为 0 表示成功。

您可以修改 Ext.data.Connection(在 src/data/Connection.js 中)中的 onComplete 函数来查看 URL 的方案,并决定它应该使用基于 HTTP 的状态还是“0=OK”状态来决定成功。

对于不成功的结果来说,拥有一个可供客户使用的主体是完全合法的。这就是为什么您的 response.responseText 仍然正确显示的原因。

关于extjs - Ext.Ajax.request() 在请求成功时调用失败回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141146/

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