使用标志启动 chrome--allow-file-access-from-files --disable-web-security
也可以解决问题。
Sencha 需要 Web 服务器,因为如果应用程序microloader
在 sencha 中处于开发模式,则Ajax
请求app.json
文件并从中加载其他文件。你可以看到这个
../sencha-sdk/mircroloader/development.js
带有以下代码的文件 -
var xhr = new XMLHttpRequest();
xhr.open('GET', 'app.json', false);
当您使用上述标志启动 chrome 时,即使使用file://....
url 方案打开文件,chrome 也允许发出 ajax 请求。
当您在使用 sencha cmd 压缩 js/css 后部署应用程序时,所有文件都打包成一个文件。在这种情况下,您不再需要网络服务器。
更新
来自白名单域的 Cordova 文档
Apache Cordova 中的域白名单是一种安全模型,用于控制对外部域的访问,例如http://google.com。默认安全策略是阻止所有网络访问。然后,应用程序开发人员可以声明对特定网络域和子域的访问。
和
在Widget Access 规范中,该元素用于声明对特定网络域的访问。将来,Apache Cordova 会将平台白名单实现抽象为 W3C Widget Access 规范。但是,目前每个平台都必须实施自己的域白名单。
此外,W3C Widget Access不包含安全和用户代理强制策略。它在XMLHTTPRequest中定义。
因此,Cordova 的基本功能是在策略中添加一个例外,以允许访问具有白名单域的应用程序域之外的某些网络资源。