get,post
jQueryでは、post()やget()などのHTTP通信を行うためのAPIも提供されています。
- 対象を指定してどうこうする機能ではないので、jQueryの関数として定義されています。
- 「$.post(...)」のような形で利用できます。
- 簡単にGETやPOSTリクエストを発行できるpost(),get()のほか、低レベルAPIとしてajax()が用意されています。
以下は、post()やget()を使ってみるサンプルです。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./jquery-1.3.2.js"></script> <script type="text/javascript"> $(function(){ // GETで取得 // 第一引数がURLで、 // 第二引数がURLパラメーターとするキーとペアをオブジェクトで指定。 // 第三引数は結果を受け取るためのコールバック関数 $.get( "./sample090719.cgi", {a:"aaa", b:100}, function(result){ $("#stdout").append( result + "<br/>" ); }); // POSTで取得 // 引数はGETと同様。第二引数については文字列で本文とする値を直接指定することも可。 $.post( "./sample090719.cgi", {a:"aaa", b:100}, function(result){ $("#stdout").append( result + "<br/>" ); }); // 本文を文字列で直接指定する。 $.post( "./sample090719.cgi", "c=ccc&d=100", function(result){ $("#stdout").append( result + "<br/>" ); }); }); </script> </head> <body> <div id="stdout" ><div> </body> </html>
アクセスしているCGIのコードは次のとおり。メソッドとパラメータを返すだけのシンプルなものです。
#!/usr/local/bin/ruby -- require "cgi" cgi = CGI.new params = cgi.params.inject(""){|str,p| str += p[0] + ":" + p[1][0] + "," } cgi.out("text/plain"){ <<-RESULT method : #{cgi.request_method} params : #{params} RESULT }