【问题标题】:EvalError when trying to load realtime data model尝试加载实时数据模型时出现 EvalError
【发布时间】:2013-07-12 08:54:24
【问题描述】:

我正在尝试在我的 Chrome 打包应用程序中使用 gapi.drive.realtime.load 方法获取实时数据模型:

gapi.drive.realtime.load(fileId, onLoad)

但我遇到了一个 EvalError:

未捕获的 EvalError:拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是以下内容安全策略指令中允许的脚本来源:“script-src 'self' apis.google.com drive.google。 com”。

当然,我可以在清单中添加“unsafe-eval”,但我想这是解决这个问题的坏方法。您能提出更好的解决方案吗?

【问题讨论】:

    标签: google-drive-api google-chrome-app google-drive-realtime-api


    【解决方案1】:

    打包应用的 CSP 限制不能低于默认值,因此您对清单的建议更改不会奏效。相反,创建一个允许 eval() 的沙盒 iframe,然后在 iframe 和您的应用程序之间来回发送消息。 This is a good example 带有指向更多文档的链接。

    【讨论】:

    • 我已经更改了“content_security_policy”(像这样:dev.chrome)并且它解决了这个问题。但我认为这是一种 hack,就像使用沙盒 iframe 一样。无论如何,谢谢你的例子。看起来实时 api 不能在没有任何 hack 的情况下用于打包的应用程序。
    • @edencore 它对我不起作用,我得到“content_security_policy”只允许用于扩展和旧版打包应用程序,但这是一个打包应用程序。”当我为我的打包应用添加“content_security_policy”时,我认为谷歌现在已经不允许它了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多