\n \n \n
\n

POST Form

\n

1列目

\n \n

2列目

\n \n

3列目

\n \n

4列目

\n \n \n
\n
\n

GET Form

\n \n

スプレッドシートの最終行は

\n

\n

です。

\n
\n \n","answerCount":1,"upvoteCount":0,"datePublished":"2022-04-09T15:32:41.362Z","dateModified":"2022-04-11T05:53:48.000Z","suggestedAnswer":[{"@type":"Answer","text":"コード中のURL(ttps://script.google.com/macros/s/~~~~)が間違っている可能性が高いです。\n\nGETでそのエラーが出る場合、デベロッパーツールで見るとPOST時にもエラーが発生しているはずです。\n\nコード中のURLが、有効なデプロイURLであるか再確認してはいかがでしょうか。\n\n---\nそのURLをひらいたところ「doGetがありません」というエラーが出ています。\n\nなので、保存していない状態でデプロイしてしまっているか、「doGet」という関数名が間違っているかのどちらかです。\n\n(確認の仕方がわからないということですので)新しくファイルを作った方が早いと思います。\n\n1.GASで新しくファイルを作って、スクリプトエディタを開いてください。\n\n2.スクリプトエディタに、元のサイトに記載の下記のスクリプトを入力して、保存してください(保存しないとデプロイ時にエラーになります)\n```\nfunction obj2txtout(obj){\n let output = ContentService.createTextOutput();\n output.setMimeType(ContentService.MimeType.JSON);\n output.setContent(JSON.stringify(obj));\n return output;\n}\nfunction doPost(e){\n let Sheet = SpreadsheetApp.getActiveSheet();\n let JsonDATA = JSON.parse(e.postData.getDataAsString());\n Sheet.appendRow([JsonDATA.column_1,JsonDATA.column_2,JsonDATA.column_3,JsonDATA.column_4]);\n return obj2txtout({ message: \"success!\", });\n}\nfunction doGet(){\n let Sheet = SpreadsheetApp.getActiveSheet();\n let Data = Sheet.getDataRange().getValues();\n let DataIndex = Data.length-1;\n let ReturnTxt = \"1列目:\" + Data[DataIndex][0] + \" 2列目:\" + Data[DataIndex][1] + \" 3列目:\" + Data[DataIndex][2] + \" 4列目:\" + Data[DataIndex][3];\n return obj2txtout({ message: ReturnTxt, });\n}\n```\n3.スクリプトエディタ右上の青い「デプロイ」のボタンをクリックし、新しいデプロイを行って、デプロイurlをコピーしてください。\nそしてそのデプロイURLを、HTMLファイルのデプロイURLの所に置換してください。\n\nここら辺の手順は\nhttps://tatsuya-note.com/create-database-web-application-in-gas-spreadsheets/\nの真ん中へんに書いてある説明通りにやればよいです。\n\n\n\n\n","dateModified":"2022-04-10T20:52:37.089Z","datePublished":"2022-04-09T21:03:53.251Z","upvoteCount":0,"url":"https://teratail.com/questions/jdkz4yon05dvff#reply-crv7ow2rztd8c6","comment":[{"@type":"Comment","text":"デベロッパーツールでエラー確認とはどうやるのでしょうか?","datePublished":"2022-04-10T01:32:58.999Z","dateModified":"2022-04-10T01:32:58.999Z"},{"@type":"Comment","text":"このサイトのコンソールを検証したら確かに失敗してるようですね。。。\n\nfile:///C:/Users/ryota/OneDrive/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/Sites/git-practice/GAS.html","datePublished":"2022-04-10T01:34:57.354Z","dateModified":"2022-04-10T01:34:57.354Z"},{"@type":"Comment","text":"> デベロッパーツールでエラー確認\nOSがWindowsで使用ブラウザがChromeかChromium Edgeならば、ブラウザの画面でF12キーを押します。\nOSがmacOSで使用ブラウザがChromeならば、option + command + i、\nSafariの場合は、https://support.apple.com/ja-jp/guide/safari/sfri20948/mac\n","datePublished":"2022-04-10T01:43:01.093Z","dateModified":"2022-04-10T01:43:01.093Z"},{"@type":"Comment","text":"開きかたは確認しました。 しかしどのように確認すればいいかわかりません。。。","datePublished":"2022-04-10T14:07:52.880Z","dateModified":"2022-04-10T14:07:52.880Z"},{"@type":"Comment","text":"追記しました。GASの方を新しくファイルを作ってやり直してみて下さい。","datePublished":"2022-04-10T20:53:19.502Z","dateModified":"2022-04-10T20:53:48.629Z"}]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/Google%20Apps%20Script","name":"Google Apps Scriptに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/jdkz4yon05dvff","name":"GASで作成したWebアプリの使用時にエラーになる"}}]}}}
質問するログイン新規登録

Q&A

1回答

1998閲覧

GASで作成したWebアプリの使用時にエラーになる

lenovoice

総合スコア3

Google Apps Script

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

0グッド

0クリップ

投稿2022/04/09 15:32

0

0

HTML

1コード> 引用テキスト

下記URLを参考に作ったのですが、POSTFormでは上手くいくのにGETFormではTypeError:Failed to fetchと表示されます。 ただこの通りにコピペしただけなのですがどこがまちがっていたのでしょうか?

https://tatsuya-note.com/create-database-web-application-in-gas-spreadsheets/](url)

<!DOCTYPE html> <html lang="ja"> <head> <title>GAS Form</title> <style> body{ width: 100vw; height: 100vh; display: flex; flex-direction: row; } #left{ background-color: #ffeeee; width: 50%; display: flex; flex-direction: column; align-items: center; justify-content: start; } #right{ background-color: #eeeeff; width: 50%; display: flex; flex-direction: column; align-items: center; justify-content: start; } </style> <script> function OnPost(){
const URL = "https://script.google.com/macros/s/AKfycbx4458BgydyTQnaqH_d0JN9XbYtbiashHn1Pn_Edbvu6W16_nbLOsN6SVgE3qizm0RS/exec"; let SendDATA = { "column_1" : document.getElementById("column_1").value, "column_2" : document.getElementById("column_2").value, "column_3" : document.getElementById("column_3").value, "column_4" : document.getElementById("column_4").value }; let postparam = { "method" : "POST", "mode" : "no-cors", "Content-Type" : "application/x-www-form-urlencoded", "body" : JSON.stringify(SendDATA) }; fetch(URL, postparam); } function OnGet(){ const URL = "https://script.google.com/macros/s/AKfycbx4458BgydyTQnaqH_d0JN9XbYtbiashHn1Pn_Edbvu6W16_nbLOsN6SVgE3qizm0RS/exec"; fetch(URL) .then(response => { return response.json(); }) .then(data => { render_text = data.message; document.getElementById("get_value").innerHTML = render_text; }) .catch(error => { document.getElementById("get_value").innerHTML = error; }); } </script>
</head> <body> <div id="left"> <h1>POST Form</h1> <p>1列目</p> <input type="text" id="column_1"> <p>2列目</p> <input type="text" id="column_2"> <p>3列目</p> <input type="text" id="column_3"> <p>4列目</p> <input type="text" id="column_4"> <button style="margin-top: 20px;" onclick="OnPost();">送信</button> </div> <div id="right"> <h1>GET Form</h1> <button style="margin-top: 20px;" onclick="OnGet();">取得</button> <p>スプレッドシートの最終行は</p> <p id="get_value"></p> <p>です。</p> </div> </body> </html>

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

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

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

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

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

guest

回答1

0

コード中のURL(ttps://script.google.com/macros/s/~~~~)が間違っている可能性が高いです。

GETでそのエラーが出る場合、デベロッパーツールで見るとPOST時にもエラーが発生しているはずです。

コード中のURLが、有効なデプロイURLであるか再確認してはいかがでしょうか。


そのURLをひらいたところ「doGetがありません」というエラーが出ています。

なので、保存していない状態でデプロイしてしまっているか、「doGet」という関数名が間違っているかのどちらかです。

(確認の仕方がわからないということですので)新しくファイルを作った方が早いと思います。

1.GASで新しくファイルを作って、スクリプトエディタを開いてください。

2.スクリプトエディタに、元のサイトに記載の下記のスクリプトを入力して、保存してください(保存しないとデプロイ時にエラーになります)

function obj2txtout(obj){ let output = ContentService.createTextOutput(); output.setMimeType(ContentService.MimeType.JSON); output.setContent(JSON.stringify(obj)); return output; } function doPost(e){ let Sheet = SpreadsheetApp.getActiveSheet(); let JsonDATA = JSON.parse(e.postData.getDataAsString()); Sheet.appendRow([JsonDATA.column_1,JsonDATA.column_2,JsonDATA.column_3,JsonDATA.column_4]); return obj2txtout({ message: "success!", }); } function doGet(){ let Sheet = SpreadsheetApp.getActiveSheet(); let Data = Sheet.getDataRange().getValues(); let DataIndex = Data.length-1; let ReturnTxt = "1列目:" + Data[DataIndex][0] + " 2列目:" + Data[DataIndex][1] + " 3列目:" + Data[DataIndex][2] + " 4列目:" + Data[DataIndex][3]; return obj2txtout({ message: ReturnTxt, }); }

3.スクリプトエディタ右上の青い「デプロイ」のボタンをクリックし、新しいデプロイを行って、デプロイurlをコピーしてください。
そしてそのデプロイURLを、HTMLファイルのデプロイURLの所に置換してください。

ここら辺の手順は
https://tatsuya-note.com/create-database-web-application-in-gas-spreadsheets/
の真ん中へんに書いてある説明通りにやればよいです。

投稿2022/04/09 21:03

編集2022/04/10 20:52
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

lenovoice

2022/04/10 01:32

デベロッパーツールでエラー確認とはどうやるのでしょうか?
lenovoice

2022/04/10 01:34

このサイトのコンソールを検証したら確かに失敗してるようですね。。。 file:///C:/Users/ryota/OneDrive/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/Sites/git-practice/GAS.html
退会済みユーザー

退会済みユーザー

2022/04/10 01:43

> デベロッパーツールでエラー確認 OSがWindowsで使用ブラウザがChromeかChromium Edgeならば、ブラウザの画面でF12キーを押します。 OSがmacOSで使用ブラウザがChromeならば、option + command + i、 Safariの場合は、https://support.apple.com/ja-jp/guide/safari/sfri20948/mac
lenovoice

2022/04/10 14:07

開きかたは確認しました。 しかしどのように確認すればいいかわかりません。。。
退会済みユーザー

退会済みユーザー

2022/04/10 20:53 編集

追記しました。GASの方を新しくファイルを作ってやり直してみて下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問