4

Google Apps Script でウィザード型のアプリケーションを作ろうとしています。UiApp でのスタイリングは後々面倒なので HtmlService ルートで試しています。フォーム POST が機能しません。ここに私のサンプルコードがあります:

// Code.gs
function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('p1');
}

function doPost(e) {
  var params = Utilities.jsonStringify(e);
  var page = HtmlService.createTemplateFromFile('p2');
  page.params = params;
  return page.evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

p1.html

<div>
  <form action="#" method="post">
    <input type="text" id="myContents"></input>
    <input type="submit" value="Submit"></input>
  </form>
</div>

p2.html

<div>
  <?=params?>
</div>

p1で「送信」をクリックして得た出力は

{"queryString":null,"parameter":{},"contextPath":"","parameters":{},"contentLength":0}

結果のページでデータを使用できるように、フォームがデータを返すことを期待しています。これがCaja中毒と関係があるのか​​ どうか疑問に思っています. 何か案は?

4

1 に答える 1

5

Google Cajaによるセキュリティ制限により、HtmlService では投稿自体が機能しません。

HtmlService で「フォーム投稿」を行う正しい方法は、google.script.run構文を使用して、クライアント側のコンテキストでサーバー側の関数を呼び出すことです。詳細な例については、こちらを参照してください - https://developers.google.com/apps-script/guides/html-service-communication#forms

于 2013-09-03T13:16:06.857 に答える