我正在为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的某些现有问题。