質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.45%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

4319閲覧

doPostの戻り値は何のために使用するどのようなものですか?

3_April_2021

総合スコア48

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/09/06 07:19

編集2021/09/07 04:19

POSTリクエストを行う際に、doPostで戻り値を指定する必要があると見受けられるような動作を確認しました。しかし、それが何のために必要などのようなものかまではわかりませんでした。

html

1<!-- orange.html --> 2<form action='' method='post'> 3<button type='submit' formaction='https://~/dev'>指定なし</button> 4<button type='submit' formaction='https://~/dev?p=banana'>banana</button> 5</form>

gs

1function doGet(e){ 2 const page=e.parameter['p']; 3 if(page){return HtmlService.createTemplateFromFile(page).evaluate();} 4 return HtmlService.createTemplateFromFile('orange').evaluate(); 5}

この表の結果は、両方のボタンに共通して確認しました。

doPost結果
存在しないスクリプト関数が見つかりません: doPost
, return;, let i= 1;スクリプトが完了しましたが、何も返されませんでした。
return 1;スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。

下記の現象は、<base target="_top">が挿入されていないことを(直接的または間接的な)原因として発生していたことがわかりました。この部分を変更することで、doPostの戻り値を反映できることを確認しています。
(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。

buttondoPost戻り値表示
指定なしapple.htmlorange.html
bananaapple.htmlbanana.html

この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。

doGetおよびdoPostがある状態でテストしてみましたが、doPostの結果(return)が表示されました。
再度ご確認ください。

投稿2021/09/06 23:58

macaron_xxx

総合スコア3191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3_April_2021

2021/09/07 04:46

質問に反映させましたが、<base target="_top">が問題だったようで、doPostの戻り値が反映されることを確認しました。 タイトルの疑問は疑問で解決したいので、まだ締め切りは保留し、回答を待ちます。
macaron_xxx

2021/09/07 23:27

何を疑問に思ってらっしゃるのかわからないのですが、Postした際の戻り値は今回の例で言えばapple.htmlのHTMLです。 Postして、apple.htmlが返ってくるのでapple.htmlが表示されるのです。
3_April_2021

2021/09/08 00:11

はい、そこは問題ありません。
macaron_xxx

2021/09/08 02:23

上記が「POSTリクエストを行う際に、doPostで戻り値を指定する必要があると見受けられるような動作を確認しました。しかし、それが何のために必要などのようなものかまではわかりませんでした。」に対する回答だと思うのですが、どこが疑問なのでしょうか?
3_April_2021

2021/09/10 05:37

回答が来そうにないため、質問は一旦締め切らせていただきます。ありがとうございました。
macaron_xxx

2021/09/10 07:48

結局質問はなんだったんでしょうか…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.45%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問