CORDOVA NOT ACCEPTING文件://

时间:2018-01-10 03:08:51

标签: android cordova three.js cors web-deployment

我正在使用three.js为cordova制作一个Android应用程序。但问题是我无法通过file:// protocol从javascript加载图像。 我一直在Chrome控制台中收到以下错误

  

从'null'访问'file://image.png/'中的图像已经是   被CORS策略阻止:响应无效。因此,原点'null'   不允许访问。

此错误是由以下代码段引起的:

var Texture1 = THREE.ImageUtils.loadTexture('/image.png'),
 Texture2 = THREE.ImageUtils.loadTexture('/image2.png');

相同的代码不在本地浏览器中运行(文件协议),但是当我将其连接到localhost:8000(http协议)时它会运行。我知道这是一个CORS问题但是cordova白名单插件声明file://应该是可访问的,但它们不是。

这是来自config.xml的我的片段

<content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-navigation href="file://*" />
    <allow-navigation href="*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>

1 个答案:

答案 0 :(得分:0)

我建议在index.html中添加自由内容安全策略,例如:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com *; style-src 'self' 'unsafe-inline' 'unsafe-eval' *; media-src *; img-src 'self' data: content: *; script-src * 'self' 'unsafe-inline' 'unsafe-eval';">