在文件中获取前飞行问题://// Cordova应用程序



我正在为CSP-

使用此元标记
<meta http-equiv="Content-Security-Policy" content="default-src * gap: file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval' ws: wss:;">

,当试图获取本地HTML时,它不加载。在控制台中还显示错误。

[Error] Failed to load resource: Preflight response is not successful (login.html, line 0)
[Error] XMLHttpRequest cannot load file:///Users/.../Library/Developer/CoreSimulator/Devices/.../data/Containers/Bundle/Application/.../test.app/www/templates/login.html. Preflight response is not successful
    success (backbone.js:487)
    l (jquery-2.0.2.min.js:5:24887)
    fireWith (jquery-2.0.2.min.js:5:25704)
    k (jquery-2.0.2.min.js:7:4931)
    (anonymous function) (jquery-2.0.2.min.js:7:8725)

使用此代码获取本地HTML(使用骨干) -

$.get( './templates/login.html', function(data) {
  template = _.template(data);
  _this.$el.append(template);
});

更新之前的代码正常工作。我将iOS和科尔多瓦更新为最新,然后我遇到了这个问题。

有什么建议?

这可能是由于wkwebview插件中的限制引起的,其中XHR请求不允许file://url。CB-10143

解决此问题的一种方法是使用local-weberver插件并使用HTTP URL。

您可以尝试由Ionic团队开发的插件。我知道您不使用离子,但是仍然可以与纯Cordova应用程序一起使用,因为插件中没有离子特定的代码。他们的插件版本通过使用本地Web服务器来解决XHR-Requests的某些现有问题。

最新更新