如何允许我的Chrome应用访问外部Api

时间:2015-04-19 18:08:45

标签: javascript api google-chrome external

我刚从大学毕业并尝试新事物。我正在尝试制作Chrome应用并希望使用:

<script src="http://connect.soundcloud.com/sdk.js"></script>

当我尝试运行它时,我收到此错误:

Refused to load the script 'http://connect.soundcloud.com/sdk.js' because it violates the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

我读过CSP之类的内容,但似乎无法让它发挥作用。

我已尝试将content_security_policy投入到我的清单中,但仍然没有运气。也许我做错了:

"content_security_policy": "script-src 'self' http://connect.soundcloud.com/; object-src 'self'"

任何帮助都会超级惊人!

2 个答案:

答案 0 :(得分:0)

您应该尝试连接API并执行此操作,您需要编辑应用程序清单文件中的权限。请参阅:https://developer.chrome.com/extensions/permission_warnings

如果要从其他网站加载外部内容,则需要将其隔离。见https://developer.chrome.com/apps/app_external

答案 1 :(得分:0)

在manifest.json中,您需要指定自定义内容安全策略。特别是,对于您的示例,您需要指定:

"content_security_policy": "... script-src: http://connect.soundcloud.com/ ..."

这会将connect.soundcloud.com添加到允许您的应用加载脚本的位置的白名单中。这有助于防止对您的应用程序进行跨站点脚本(XSS)攻击。

有关如何将CSP应用于Chrome应用的详细信息,请参阅https://developer.chrome.com/extensions/contentSecurityPolicy。有关非常酷的内容安全策略技术的更一般概述,请参阅http://www.html5rocks.com/en/tutorials/security/content-security-policy/