ネットサービスとかGoogleとか豆知識とか。

Index > Javascript > AjaxでPOSTのリクエストを送信したい時は
Javascript
2005年10月27日 00:36

AjaxでPOSTのリクエストを送信したい時は

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

AjaxでPOSTのリクエストを送信する方法を色々調べていた。

まず役に立つのは、ALL Aboutで連載されている「Ajaxはじめの一歩 XMLHttpRequest」である。XMLHttpRequestについてはこのページを見れば大体分かる。POSTの場合は、POSTするデータをsendメソッドの引数に与えなければならない。形式は、

"key1=value1&key2=value2&key3=value3"

のような感じで大丈夫。ちなみにGETのリクエストの場合は、sendの引数はnullで、openメソッドの引数にGET用のURLを記述すればよい。

それともう一つ、Content-Typeを明示してあげなければ正しくPOSTされない場合があるので注意。

蓄積多趣味人 - XMLHttpRequestでpostメソッドを使うときはに書かれているように、

req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");(reqはXMLHttpRequestのオブジェクト変数)

を、openメソッドの後に記述する必要がある。私も1時間ほどハマりました。

PerlでもHTTP通信をするためのLWPモジュールがあるが、HTTPS通信にはCrypt::SSLeayモジュールを組み込む必要がある。一方、AjaxでXMLHttpRequestを使う場合は、プロトコルがHTTPであろうがHTTPSであろうが気にする必要はない。

Ajaxは、受け取ったレスポンスデータを加工して表示する部分のほうが格段に難しいと感じる。その辺りの実装については、時間のある時にまた書いてみる。

  • 超・役に立つAjaxリンク集(by はてなブックマーク)