1

我们有一系列Google表格,其中包含我们应用程序的数据,并且我们在每个表格背后都编写了脚本,以json格式(作为下载)输出该数据,然后我们将使用这些数据。这是通过将每个脚本作为Web应用程序发布,然后通过HTML对话框链接到URL来完成的。网络应用程序看起来像这样:Google表格Web App downloadAsFile停止工作

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应用程序。这个问题在某些时候出现在所有表单上,没有改变,所以我假设这不是我们所做的。

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

更新2:我刚刚意识到这个问题正在为我们中的一些人发生,而不是其他人。

+0

我只是猜测在这里,但我不知道它是否是你的脚本下游可能在你的网络。我说这是因为echo是一个输出命令在PHP中。 – Cooper

+0

感谢您的建议。我刚刚意识到这个问题只影响办公室里的一些人而不是其他人。我想这会排除网络? –

+0

可能是这种情况。但是,如果您有网络管理员,则可能值得向他们询问。 – Cooper

回答

0

的问题是,当我启动从谷歌片上的HTML模式对话框的链接Web应用程序,以及导致出现此错误:

拒绝显示“https://开头...',因为它将 'X-Frame-Options'设置为'SAMEORIGIN'。

所以,我试图修复详见这个线程:App Script HTMLService App in iFrame,但没有工作,所以最后我只是说target="_blank"到HTML链接,并在新窗口中打开并正常工作。