ソフトウェアエンジニアのブログ

暇つぶしに書いてます。他に技術的なことは[http://qiita.com/nsas454]に書いてますのでそちらも見てください。

google closureでAjax

google closureでAjax実装
簡単なサンプルです。

ステータスコードで判断する場合

goog.require("goog.net.XhrIo");

function doRequest() {
 var url = 'http://localhost:8888/create';
 var postData = 'type=user&first=Bob&last=Evans';
 var callback = function(e) {
 var xhr = /** @type {goog.net.XhrIo} */ (e.target); 
          if (xhr.getStatus() == 201) {
               alert('成功しました'); 
          } else {
               alert('失敗しました'); 
          }
     }
 goog.net.XhrIo.send(url, callback, 'POST', postData);
}

ステータスコード(xhr.getStatus())は状況に応じて変更してください。

パラメータの渡し方をQueryDataで処理する場合

function doRequest() {
 var request = new goog.net.XhrIo();
 var data = goog.Uri.QueryData.createFromMap(new goog.structs.Map({
         type: "user",
         first: "Bob",
         last: "Evans"
     }));
 goog.events.listen(request, "complete", function(){
          if (request.isSuccess()) {
               alert('成功しました'); 
          }else{
               alert('失敗しました'); 
          }
     });
 request.send("http://localhost:8888/create", "POST", data.toString()
 );
}

パラメータを渡すのならQueryDataで記述する方が、見た目がすっきりします。