Cordova xmlhttprequest无法加载crosswalk生成中xdk项目中包含的文件

Cordova xmlhttprequest无法加载crosswalk生成中xdk项目中包含的文件,cordova,three.js,intel-xdk,crosswalk-runtime,Cordova,Three.js,Intel Xdk,Crosswalk Runtime,基本上,我试图使用XMLHttpRequest加载一个.json文件,我已经在XDK的工作文件中包含了这个文件。我正在加载文件名作为url,例如,我正在加载 url = "MyFile.json" xhr.open( 'GET', url, true ); 然后,我在onreadystatechange函数中查看responseText,当readystate完成并且状态指示所有事情都已完成时。通常,当我在我的桌面浏览器中甚至在任何设备的XDK仿真器中运行东西时,一切都按预期运行。问题是,当

基本上,我试图使用XMLHttpRequest加载一个.json文件,我已经在XDK的工作文件中包含了这个文件。我正在加载文件名作为url,例如,我正在加载

url = "MyFile.json" 
xhr.open( 'GET', url, true );
然后,我在onreadystatechange函数中查看responseText,当readystate完成并且状态指示所有事情都已完成时。通常,当我在我的桌面浏览器中甚至在任何设备的XDK仿真器中运行东西时,一切都按预期运行。问题是,当我使用crosswalk打包项目时,似乎出现了一些问题,responseText返回null/false/undefined which,这表明某些内容(但我不确定哪些内容)不起作用,并且我的文件无法加载

这可能有点模糊,但我正在尽我所能理解。XDK和人行横道对我来说是新事物,我很不确定问题在哪里。在多次构建和重建我的应用程序而不知道事情是如何或为什么一团糟的情况下,我希望有人能帮助我。可能是一些简单的东西,比如这些文件的url不同,或者可能是一些复杂的东西,需要跨来源的东西。我真的不知道,而且我已经搜索了很多次了,到目前为止什么都没有找到

我使用的是three.js,特别是这个问题似乎与JSONLoader组件有关,但实际上我并不介意重写任何加载程序,我只需要xmlHttpRequest来获取文件

更新


做了一点挖掘,我觉得我在轨道上,但有一些小东西我错过了。responseText是空的,但除此之外,我已经遵循了我可以在网上找到的从assets/www/文件夹加载文件的所有准则。问题是我加载扩展名为“.json”或“.js”的文件时遇到的吗?

我对这个问题有了更多的了解(我在phonegap/cordova中加载资产时遇到了一些问题,因为我的项目使用cordova.js,内置于构造2中,然后通过XDK导出到crosswalk)我还没有真正的答案,但我觉得我需要结束这个问题,在其他地方问一个更相关的问题。目前的问题要么是A.crosswalk/cordova在android设备上使用的XMLHttpRequest的内置实现存在缺陷,要么是B.我的实践存在问题。Everywhere online说我正在做的事情应该是可行的,而且天生就是为了在人行横道上工作而设计的,所以我真的不知道问题出在哪里。

这应该行得通。您正在测试哪个设备出现问题?它是模拟器还是物理设备?另外,删除对xhr.js的任何引用-这是用于旧容器的,不再需要。尝试使用调试选项卡进行调试,因为它正在运行Crosswalk的一个版本。或者,将“debugable”等于“true”指令添加到您的Crosswalk构建和远程调试中。有关该文件(*.additions.xml file>)的示例,请参见“空白cordova模板”。此外,如果您直接或通过App Designer使用App Framework,请确保您的项目中有最新版本的App Framework库。最新文件在这里>设备是实际的Nexus 5。话虽如此,XDK中所有可用设备的仿真器都可以正常工作,但在实际设备上构建的应用程序中,由于某种原因,文件加载失败。我已经要求人们在各种android设备上测试它,这是同样的问题。另外:我实际上并没有引用某个xhr.js文件(我不认为),它是函数中的“var xhr”。就是如何编写three.js加载程序的。