【发布时间】:2012-11-02 18:10:00
【问题描述】:
我有一个使用 HtmlServices 制作的网页。 这个页面有一个表单,我想提交给一个 GAS 网络应用程序,该应用程序被设计成一个网络服务。
当我使用谷歌应用脚本 UrlFetch 从我的第一个 GAS 应用调用我的网络服务时,我经常会遇到超时。不幸的是,我们无法设置我认为大约 10 秒的 GAS UrlFetch 超时值。 10 秒对于 GAS 应用程序复制文件、打开/编辑电子表格和发送电子邮件来说是不够的!
所以我决定在使用 HtmlServices 构建的网页中使用 Jquery 并进行 ajax 发布(因为我可以设置超时值)。 (所以我的页面被 Google Caja 清理了)。据说Caja支持jquery。
但是我注意到 Ajax URL 总是被重写为第一个 Web 应用程序 URL(我想发布到的 url 被 Caja 更改)。在我看来,谷歌的 Caja 正在阻止 Ajax 调用。 我在 GAS HtmlService 中找不到有关 Caja / Ajax 发布限制的任何内容。
您对如何在不受 GAS 超时限制的情况下从 GAS Web 应用调用 Web 服务有什么建议吗?
【问题讨论】:
-
澄清一下 - 你有一个基于 Apps Script 的网络应用程序和一个基于 Apps Script 的服务。您想让 Web 应用程序向服务提交数据吗?听起来对吗?
-
是的,这是有充分理由的,因为两者没有在同一组共享权限上运行!一个以访问页面的用户身份运行,另一个以我的身份运行并为我做事。
-
我从未尝试过这个,但它确实是一个很好的用法。你试过普通的javascript吗? jQuery 和 Apps Script 最近表现不佳。有一个 AJAX 示例 here.
标签: google-apps-script google-caja