0

これが私の簡単な App Script です。doPost は何も返しません。しかし、コードが UIApplication を返すように Post する場合、ファイルは機能します。

doPost から HTML 出力を送信する方法について何か考えはありますか?

function doGet() {
   var app = UiApp.createApplication(); 
   var form = app.createFormPanel();
   var flow = app.createFlowPanel();
   flow.add(app.createTextBox().setName("textBox"));
   flow.add(app.createSubmitButton("Submit"));
   form.add(flow);
   app.add(form);

   return app;
 }

 function doPost(eventInfo) {
   /* if i uncomment UiApp section then it works fine, But i want to send HTML, then the reponse is blank */
   /*var app = UiApp.getActiveApplication(); 

   app.add(app.createLabel("Form submitted. The text box's value was '" +
       eventInfo.parameter.textBox + "'"));
   return app;*/
   /* the following returns just blank page */
   outText = "<html><body><h1> Received Text = " + eventInfo.parameter.textBox+"</h1></body></html>";
   return HtmlService.createHtmlOutput(outText);
 }

問題は、doPost を介して HTML を送信する方法です。doGet が UiApp を返す場合、doPost は UiApp を返す必要があるようです。この制限ですか、それとも何か間違っていますか?

4

1 に答える 1

1

あなたの疑いは正しいです。このように 1 つのスクリプトで HtmlService と UiApp を混在させる方法はありません。

編集:さらに説明しましょう。UiApp が doPost を呼び出した場合、それが UiApp でない限り、応答は尊重されません。ただし、フォームのアクションを明示的にスクリプト URL に設定すると、UiApp であれ HtmlService であれ、応答が尊重され、ページが完全に置き換えられます。ただし、ブラウザで UiApp と HtmlService の両方を一度に表示する方法はありません。

于 2012-10-23T23:45:09.583 に答える