在 file:/// cordova app 中获取预检问题
getting preflight issue in file:/// cordova app
我正在为 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(使用 backbone)-
$.get( './templates/login.html', function(data) {
template = _.template(data);
_this.$el.append(template);
});
更新之前上面的代码运行良好。我将 iOS 和 Cordova 更新到最新,然后我遇到了这个问题。
有什么建议吗?
这可能是由于 WKWebView 插件中的限制导致的,该插件不允许对 file:// URL 进行 XHR 请求。 CB-10143
解决此问题的一种方法是使用 local-webserver plugin 并改用 http url。
你可以试试这个forkionic团队开发的插件。我知道您没有使用 ionic,但它 应该 仍然可以与纯 cordova 应用程序一起使用,因为插件中没有特定于 ionic 的代码。他们的插件版本通过使用本地网络服务器修复了 XHR 请求的一些现有问题。
我正在为 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(使用 backbone)-
$.get( './templates/login.html', function(data) {
template = _.template(data);
_this.$el.append(template);
});
更新之前上面的代码运行良好。我将 iOS 和 Cordova 更新到最新,然后我遇到了这个问题。
有什么建议吗?
这可能是由于 WKWebView 插件中的限制导致的,该插件不允许对 file:// URL 进行 XHR 请求。 CB-10143
解决此问题的一种方法是使用 local-webserver plugin 并改用 http url。
你可以试试这个forkionic团队开发的插件。我知道您没有使用 ionic,但它 应该 仍然可以与纯 cordova 应用程序一起使用,因为插件中没有特定于 ionic 的代码。他们的插件版本通过使用本地网络服务器修复了 XHR 请求的一些现有问题。