无法加载图片,因为它违反了内容安全策略

时间:2016-05-11 10:00:48

标签: angularjs google-chrome-app content-security-policy

在Chrome应用程序中,我试图从外部链接加载图像但是收到错误

  

拒绝加载图片   '不安全:https://www.google.co.in/images/srpr/logo11w.png'因为它   违反了以下内容安全策略指令:“img-src   'self'blob:filesystem:data:chrome-extension-resource:

我已经在manifest.json文件中添加了content_security_policy

"content_security_policy": "img-src 'self' https://www.google.co.in/ blob: filesystem: data: chrome-extension-resource:;"

还使用正则表达式

向Angular的白名单明确添加了URL协议
.config(['$compileProvider',
    function ($compileProvider) {
        var currentImgSrcSanitizationWhitelist = $compileProvider.imgSrcSanitizationWhitelist();
        var newImgSrcSanitizationWhiteList = currentImgSrcSanitizationWhitelist.toString().slice(0, -1)
        + '|chrome-extension:'
        + currentImgSrcSanitizationWhitelist.toString().slice(-1);

        console.log("Changing imgSrcSanitizationWhiteList from " + currentImgSrcSanitizationWhitelist + " to " + newImgSrcSanitizationWhiteList);
        $compileProvider.imgSrcSanitizationWhitelist(newImgSrcSanitizationWhiteList);
    }
        ]);

但仍有错误。

1 个答案:

答案 0 :(得分:2)

无法覆盖CSP for Chrome Apps(该密钥仅用于扩展程序)。

您需要调整应用程序以获取然后在本地缓存图像 - 您无法直接嵌入它们。请参阅Referencing external resources上的Google指南。

另外,请再次查看this question - 如果您在网址中获得unsafe:,则表示您没有正确执行此操作。