Google App脚本 - WebAPP - 在doPost上返回HTML不起作用。 doGet很好

时间:2012-10-23 22:42:32

标签: google-apps-script

这是我简单的App脚本。 doPost什么都不返回。但是如果要发布的代码返回UIApplication,那么它就可以运行文件。

有关如何从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。这是限制还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

你的怀疑是正确的;没有办法将HtmlService和UiApp混合在一个这样的脚本中。

编辑:让我进一步解释。当UiApp调用doPost时,它不会尊重响应,除非它是UiApp。但是,如果您将表单的操作设置为显式的脚本URL,它将尊重响应,无论是UiApp还是HtmlService,并完全替换页面。虽然没有办法在浏览器中同时显示UiApp和HtmlService。