如何为 cordova 配置内容安全策略和白名单插件以获取本地文件



收到错误 跨源请求仅支持 iPhone cordova/phonegap 应用程序的 HTTP。这在安卓上工作正常。

var url = 'info.json'; // a localhost file in the www folder
var jqxhr = $.getJSON(url, function(data) {
console.log( "LOADING SUCCESS: ",data );
}).fail(function(data) {
console.log( "LOADING FAILED: ",data );
});

我尝试了许多内容安全策略。我最近使用的是:

default-src *  data: blob: filesystem: about: ws: wss: 'unsafe-inline' 'unsafe-eval' 'unsafe-dynamic'; 
script-src * data: blob: 'unsafe-inline' 'unsafe-eval'; 
connect-src * data: blob: 'unsafe-inline'; 
img-src * data: blob: 'unsafe-inline'; 
frame-src * data: blob: ; 
style-src * data: blob: 'unsafe-inline';
font-src * data: blob: 'unsafe-inline';

cordova-plugins-whitelist 的配置.xml配置如下:

<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" />

我也尝试使用cordova插件文件,它也抛出CORS错误。我尝试删除平台并再次添加。

我使用phonegap准备ios,然后使用xcode进行构建。

如果您使用的是iOS WKWebView,您将无法通过XHR访问文件。如果您使用的是 cordova-ios <6.0.0,那么您可以添加 cordova-plugin-file-xhr 插件。 问题是使用 WKWebView 的 XHR 调用不会设置源并中断请求的 CORS,甚至中断到本地主机(通过 file://(。

如果您使用的是 cordova-ios>= 6.0.0,则缺少此功能,您应该回退到 5.1.1

相关内容

  • 没有找到相关文章

最新更新