如何使用托管在 Google 驱动器上的 GoogleCast 示例解决 CORS 错误?

Posted

技术标签:

【中文标题】如何使用托管在 Google 驱动器上的 GoogleCast 示例解决 CORS 错误?【英文标题】:How to resolve CORS error with GoogleCast sample hosted on Google drive? 【发布时间】:2015-01-02 22:10:36 【问题描述】:

我是 Chromecast/Web 开发新手,但我下载并加载了“Cast-Player-Sample”from github here 到我的 Google 云端硬盘,然后在我的开发者帐户中发布了公共 URL。我还关联了我的设备/序列号/重新启动。我在控制台中收到此错误:

位于“https://www.googledrive.com/host/[REDACTED]/player.html”的页面 通过 HTTPS 加载,但运行不安全的内容 'ws://localhost:8008/v2/ipc': 这个内容也应该被加载 HTTPS。

我读到的所有内容都说这是一个 CORS 问题,而且 Google 驱动器不允许 Access-Control-Allow-Origin: *,因为有人可以窃取你所有的驱动器数据,这是有道理的。

我该如何解决这个错误?

截图:

【问题讨论】:

这不是 CORS 问题;您提到的 URL 与 websocket 有关。除了这个错误,你还遇到了什么问题? 我在原始问题中附上了屏幕截图。下一个错误是Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 我不确定样本“做什么”。我在黑色背景上看到一个带有旋转圆圈的 chromecast 图标,仅此而已。我怎么能cast这个?我原以为它会在我的 Chrome 的 Cast Extension 中显示为接收器,但我没有看到。 【参考方案1】:

我在控制台中看到的错误是您的 player.html 的 url 错误;您是否在 Google 驱动器上正确托管(请参阅说明 here)以及注册应用程序的时间? URL 应类似于 https://www.googledrive.com/host/some_doc_id

【讨论】:

我相信我做的一切都是正确的,我只是从头开始重新做。 ba547803f15d96fdb3b0ec72daaf193c180386c3-www.googledrive.com/… 是我在开发控制台中注册并访问的 URL,googledrive.com/host/0B4pepv-NkqXNbEUwMjBjeG94d0k 是包含文件的实际目录。 尝试将您的接收器注册为googledrive.com/host/0B4pepv-NkqXNbEUwMjBjeG94d0k/player.html 我刚把它改成那个网址,还是不行。奇怪的是开发控制台中的“预览”按钮显示它工作正常。 重新启动您的 Chromecast,以便它可以在开发控制台上进行更改后获取新配置。 好吧,看来你做错了。接收器(您从 github 下载并托管在驱动器上的示例)是一个接收器,即它不会在您的桌面 chrome 上正确加载,但会在 chromecast 上加载。然后你需要一个发件人;您可以获取我们在 github 上的三个参考发件人中的任何一个(CastVideos-andoid、ios 或 chrome),并在您选择的发件人中设置您通过注册获得的 App Id,然后使用发件人应用程序投射媒体。在我们的文档网站上了解演员表范例。

以上是关于如何使用托管在 Google 驱动器上的 GoogleCast 示例解决 CORS 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何将远程(用户)IP 从 nginx 传递到托管在 google 容器引擎上的 Rails?

如何在 MySQL Workbench 中使用 REGEXP_SUBSTR 或 REGEXP_EXTRACT 以及托管在 Google Cloud SQL 上的数据库?

如何使用 Google FCM 和 Microsoft azure 作为托管服务器从 chrome for android 上的 PWA 发送推送通知

使用 Google 托管 jQuery 的最佳方式,但回退到我在 Google 上的托管库失败

谷歌钱包应用内付款:未捕获的 ReferenceError:未定义 goog。 google.payments 与 goog.payments

使用托管在 S3 上的 react-router v3 创建-react-app 不能使用“fetch as google”