【问题标题】:Google Sheets Web App downloadAsFile Stopped WorkingGoogle Sheets Web App 下载AsFile 停止工作
【发布时间】:2017-04-07 13:27:32
【问题描述】:

我们有一系列包含应用程序数据的 Google 表格,我们在每个表格后面都编写了脚本,以 json 格式输出数据(作为下载),然后我们会使用这些数据。这是通过将每个脚本发布为 Web 应用程序,然后从 HTML 对话框链接到 URL 来完成的。 Web 应用程序如下所示:

function doGet()
{
    var exportJSON = getExportJSON();
    var output = ContentService.createTextOutput(exportJSON);
    output.downloadAsFile("filename.json");
    return output;
}

function getExportJSON()
{
    var exportArray = [];
    fillInExportArray(exportArray);
    return JSON.stringify(exportArray, null, 4);
}

这在一段时间内运行良好,但在星期三(2017 年 4 月 5 日)突然停止运行。现在发生的是下载对话框出现了,但是它曾经放置文件名(在我的示例中为 filename.json)的地方现在有单词“echo”(不带引号)。如果我选择下载文件的位置,然后单击“确定”,下载会出现在 Chrome 的下载栏中,但下方会显示“失败 - 网络错误”。

正如我所说,我们有许多使用相同模式的工作表,但它们是完全独立的脚本和 Web 应用程序。这个问题在某个时间出现在所有的工作表上,没有被改变,所以我假设这不是我们做过的事情。

更新:我忘了说,如果我进入脚本编辑器,然后选择发布 -> 部署为 Web 应用程序,然后单击“最新代码”链接,下载工作正常。

更新 2:我刚刚意识到这个问题发生在我们办公室中的一些人身上,而其他人则没有。

【问题讨论】:

  • 我只是在这里猜测,但我想知道它是否在您的脚本下游,可能在您的网络中。我这么说是因为 echo 是 php 中的输出命令。
  • 感谢您的建议。我刚刚意识到这个问题只会影响办公室里的一些人,而不会影响其他人。我猜这排除了网络?
  • 大概就是这样。但是,如果您有网络管理员,可能值得向他们询问。
  • 根据您的建议,我与网络管理员谈了话,他恰好也是一位经验丰富的网络程序员,他很快就让我得到了答案。我已经在下面发布了 - 感谢您的帮助。

标签: google-chrome google-apps-script google-sheets google-spreadsheet-api


【解决方案1】:

问题在于,当我从 Google 表格的 HTML 模式对话框中激活指向 webapp 的链接时,导致出现此错误:

拒绝在框架中显示“https://...”,因为它设置了 'X-Frame-Options' 到 'SAMEORIGIN'。

所以我尝试了此线程中详细说明的修复:App Script HTMLService App in iFrame,但这不起作用,所以最后我只是将target="_blank" 添加到链接 HTML 中,它在新窗口中打开并且工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多