我正在为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:scheme时,状态值为0表示成功.
您可以修改Ext.data.Connection中的onComplete函数(在src / data / Connection.js中)以查看URL的方案,并确定它是应该使用基于HTTP的状态还是“0 = OK”状态确定成功.
拥有可供客户使用的机构非成功结果是完全合法的.这就是您的response.responseText仍然正确显示的原因.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。