【问题标题】:Flash and Google Drive SDK cannot talk to each otherFlash 和 Google Drive SDK 无法相互通信
【发布时间】:2012-09-23 08:41:45
【问题描述】:

我需要创建一个连接到 Google Drive SDK 的 Flash Web 应用程序来检索公共二进制文件,但我面临跨域安全问题。

我可以使用带有 CORS 的 cross-site xmlhttprequest 在 javascript 中做到这一点。在 AS3 中,docs.google.com 上请求 crossdomain.xml 文件。但是当前设置不允许闪存访问该文件。

我目前的解决方案是使用 javascript 获取数据并使用 ExternalInterface 将其发送到 swf。

是否有任何更好的解决方案(在我的情况下,代理不是一个选项)?

编辑:似乎理想的解决方案是授予对https://docs.google.com/crossdomain.xml 中的授权标头的访问权限:

<cross-domain-policy>
     <allow-http-request-headers-from domain="*" headers="Authorization">
      </allow-http-request-headers-from>
</cross-domain-policy>

此更改将赋予 Flash API 与 Javascript 相同的安全权限。

google drive sdk 团队能评论一下吗?

【问题讨论】:

    标签: actionscript-3 flash oauth-2.0 google-drive-api


    【解决方案1】:

    CORS 适用于大多数使用 Google Drive API 的操作。正如您所说的那样,您可以使用 Google JavaScript 客户端并使用 ExternalInterface。我现在可能更喜欢这个解决方案,具体取决于你在做什么。

    【讨论】:

    • 感谢您的回答。 ExternalInterface 的解决方案在授权方面效果很好,但是效率非常低,因为我需要在 javascript 和 flash 之间传输二进制数据。我认为您应该更新您的 crossdomain.xml,因为它只是允许访问 flash 以访问 javascript 已经允许的内容。不多不少,不多不少……
    • 我只想补充一点,在 Flash 中直接从 Google Drive 下载文件是游戏和多媒体市场的一项重要要求。就我而言,我正在传输 3D 数据并且使用 ExternalInterface 是一个非常丑陋的后备...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2019-10-03
    相关资源
    最近更新 更多