AjaxでPOSTのリクエストを送信したい時は
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は、受け取ったレスポンスデータを加工して表示する部分のほうが格段に難しいと感じる。その辺りの実装については、時間のある時にまた書いてみる。
情報THX。助かりました!
お役に立ててなによりです