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

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

新規登録して質問してみよう
ただいま回答率
85.48%
POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1612閲覧

jqueryを使わずにjavascriptで外部URLにPOSTしたい

qopllqopllqop

総合スコア36

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/04/29 23:20

編集2017/04/30 00:27

javascriptを使用して、外部サイトにアドワーズのデータをPOSTし、DBにデータを登録したいと考えています。

環境に制約があり、関数を作成し、その関数を実行するのみの環境です。

Adwordsスクリプト環境で外部サイトへデータをPOSTしたいと考えております。
Adwordsスクリプトはjavascriptを使って書くことができますが、alert()などブラウザの機能を使用するような関数は使用できません。
同様に'<script src="~'を用いてjQueryなど外部のスクリプトは読み込めないのではないかと考えています。
(関数内で外部jsを読み込み方法があれば別ですが)

また、ブラウザを介さないためXMLHttpRequestも使用ができません。

送信したい項目は

  • date
  • user_id
  • add_group
  • cost

の4項目です。

jQueryを使わずにjavascriptを実行することで、外部サイトのURLに値をPOSTする方法がございましたら、ご教授いただければ幸いです。

尚、受け側はすでに完成しております。

よろしくお願いいたします。

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

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

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

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

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

Zuishin

2017/04/30 00:02

どういう環境なのか詳しく書いた方がいいと思います。隠す意味がありません。
Zuishin

2017/04/30 00:06

この手の質問の場合、回答しても後から後から「それはダメです」「それもダメです」といくらでも追加の条件が増えてくるので、それを忌避して回答者の数は減ります。最初から明らかにした方が早いです。
qopllqopllqop

2017/04/30 00:19

大変失礼いたしました!今しがた修正いたしました。あまり一般的ではない環境かと思いますが、よろしくお願いいたします。
guest

回答1

0

ベストアンサー

「ブラウザを介さない」とありますが、どのようなJavaScriptの実行環境なのでしょうか。

JavaScriptの言語自体には通信機能がありませんので、ブラウザであればXHRやfetch、Nodeだとhttpなど、ランタイム側にある機能を使わなければ実現できません。

投稿2017/04/30 00:10

maisumakun

総合スコア145184

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

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

qopllqopllqop

2017/04/30 00:23

実行環境につきまして、説明が不足しており大変申し訳ございませんでした。 「Adwordsスクリプト」内での実行を考えております。 javascriptを使用してプログラミングできますが、alert()といったブラウザの機能を使った関数は使用できない環境です。
qopllqopllqop

2017/04/30 00:43 編集

無事以下の内容にてAdwordsスクリプトよりデータをPOST送信することができました!ありがとうございました! === function main() { var formData = { 'date': '2017-04-30', 'user_id': '1', 'add_group': 'test', 'cost':'9999' }; var options = { 'method' : 'post', 'payload' : formData }; UrlFetchApp.fetch('http://hoge.com/fuga.php', options); }
qopllqopllqop

2017/04/30 01:04

恐れ入ります。 何度かテストしましたところ、データがうまく渡っておりませんでした。 当方の検証不足でもうしわけございません。 再度いろいろ試して見たいと思います。
qopllqopllqop

2017/05/03 20:51 編集

解決方法を探るため、受け側のファイルでmethodをGETにしていたことが原因でデータの受け取りができておりませんでした。methodをPOSTにすることで、無事データを受け取ることができました。 また、数値データを渡す時はシングルクォーテーションで括らず記述しますが、Adwordsスクリプトや、Googleスクリプト内で修正を行う場合、改めて数値を入力しなおさないとエラーになる(クォーテーションの削除だけではダメ)ので注意が必要であることがわかりました。 初心者的なミスで恐縮です。 突破口を教えていただき、誠にありがとうございました! 以下に実際にfetchできたソースコード(数値はクォーテーションなし)を貼っておきます。 === function main() { var formData = { 'date': '2017-04-30', 'user_id': 1, 'add_group': 'test', 'cost':9999 }; var options = { 'method' : 'post', 'payload' : formData }; UrlFetchApp.fetch('http://hoge.com/fuga.php', options); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問