Google 网站上的 Apps 脚本小工具开始抛出 CORS 错误

Posted

技术标签:

【中文标题】Google 网站上的 Apps 脚本小工具开始抛出 CORS 错误【英文标题】:Apps Script Gadget on Google Site started throwing CORS errors 【发布时间】:2014-04-19 11:15:01 【问题描述】:

我有一个包含多个页面的 Google 站点,所有页面都包含一个 Google Apps 脚本小工具。用户报告说,几个月前,Apps Script Gadgets 停止工作。我对它们进行了测试,发现 Apps Script 小工具可以正确加载并显示来自 UI 服务的内容,但是,当单击任何运行功能的按钮时,Apps Script Gadget 会挂起并且浏览器中显示控制台错误:

Uncaught SecurityError: Failed to read the 'frame' property from 'Window': Blocked a frame                      
with origin "https://sites.google.com" from accessing a frame with origin
"https://xxxxxxxxxxxxxxxx-a-sites-opensocial.googleusercontent.com".
Protocols, domains, and ports must match.

Google 是否更改了某种安全策略以防止向 Apps Script Scripts 发出跨域请求?有什么解决方法吗?

谢谢

学习

【问题讨论】:

提供更多信息。您究竟是如何将脚本插入网站的?通过网址?网址是否以“脚本”或“网站”开头。 使用 Google Apps 脚本小工具将脚本插入到站点中。网址以 script.google.com 开头 我会尝试使用在另一个选项卡中打开 Apps Script Gadget 的链接作为解决方法。 <a href="https://URL to Your deployed AppsScript.com" target="_blank">My Gadget Name</a> 如果你能提供你的实现,我很乐意多看一下(我最近在一个项目中与 Google Gadgets 合作过)。 【参考方案1】:

我能找到解决此问题的唯一方法是将小工具替换为在新页面中打开 Apps 脚本 URL 的链接。

【讨论】:

以上是关于Google 网站上的 Apps 脚本小工具开始抛出 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本 - 将 gmail 中的数据提取到电子表格中

从 Google Apps 脚本上的 URL 获取文件 ID 的最简单方法

Google Apps 域上的 Google App Engine

外部编辑器支持Google Apps脚本

用于打开 URL 的 Google Apps 脚本

在 iFrame 中嵌入 Google Apps 脚本