1

Wir haben eine Reihe von Google Tabellen, die Daten für unsere Anwendung enthalten, und hinter jeder haben wir Skripte geschrieben, um diese Daten im json Format (als Download) auszugeben, die wir dann verwenden. Dies geschieht, indem jedes Skript als Web-App veröffentlicht wird und dann über einen HTML-Dialog mit der URL verknüpft wird. Die Web-Anwendungen sieht ungefähr wie folgt aus:Google Tabellen Web App downloadAsFile funktioniert nicht mehr

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); 
} 

Diese sehr gut für eine Weile gearbeitet hat, aber am Mittwoch (5. April 2017) es funktioniert plötzlich. Was jetzt passiert ist, dass der Downloaddialog erscheint, aber wo er den Dateinamen (filename.json in meinem Beispiel) verwendet hat, hat er jetzt das Wort "echo" (ohne die Anführungszeichen). Wenn ich einen Speicherort zum Herunterladen der Datei auswähle und auf OK klicke, wird der Download in meiner Downloadleiste in Chrome angezeigt, aber darunter steht "Failed - Network error".

Wie gesagt, wir haben eine Reihe von Blättern, die das gleiche Muster verwenden, aber sie sind völlig separate Skripte und Web-Anwendungen. Dieses Problem tauchte zu jeder Zeit auf allen Blättern auf, ohne dass sie geändert wurden, also nehme ich an, dass es nichts ist, was wir getan haben.

update: Ich habe vergessen zu sagen, dass, wenn ich in den Skript-Editor gehe, und wählen Sie veröffentlichen -> Als Web-App bereitstellen, und klicken Sie dann auf den Link "neuesten Code" der Download funktioniert gut.

Update 2: Ich habe gerade festgestellt, dass dieses Problem für einige von uns im Büro passiert, aber nicht für andere.

+0

Ich rate nur hier aber ich frage mich, ob es etwas stromabwärts von Ihrem Skript vielleicht in Ihrem Netzwerk ist. Ich sage das, weil Echo ein Ausgabebefehl in PHP ist. – Cooper

+0

Danke für den Vorschlag. Ich habe gerade festgestellt, dass dieses Problem nur einige der Leute im Büro und nicht andere betrifft. Ich denke, das schließt das Netzwerk aus? –

+0

Das ist wahrscheinlich der Fall. Wenn Sie jedoch einen Netzwerkadministrator haben, könnte es sich lohnen, sie danach zu fragen. – Cooper

Antwort

0

Das Problem ist, dass ich den Link zum Webapp aus einem HTML-modalen Dialog aus dem Google-Blatt zu aktivieren, und das verursacht wurde dieser Fehler angezeigt:

Refused ‚anzuzeigen https: // ... 'in einem Rahmen, weil ' X-Frame-Optionen 'auf' SAMEORIGIN 'gesetzt wurde.

Also habe ich versucht, das Update wie in diesem Thread beschrieben: App Script HTMLService App in iFrame, aber das hat nicht funktioniert, so dass am Ende nur target="_blank" auf den Link HTML Ich fügte hinzu, und es öffnet sich in einem neuen Fenster und funktioniert einwandfrei.

Verwandte Themen