2012年12月7日金曜日

[jQuery]$.ajaxのオプションcompleteとsucceedの違い

completeオプションを使用した場合は、jsonからjavascriptの配列に変換する
処理が以下の3行目のように必要だった。

$.ajax({
 complete:function (data, textStatus) {
  data = $.parseJSON(data.responseText);
  if (data.redirect) {
              window.location.href = data.redirect;
         } else {
   $.alerts.dialogClass = "custom1";
   jAlert(data.message,"確認して下さい",clearAltCls);
         }
 },
 data:postData,
 type:"post",
 url:"\/rakuzon\/themes\/itemAdd"
});
だが、以下のようにsuccessを使用した場合は、11行目で指定したデータタイプに
自動的に変換されている。便利。

$.ajax({
 success:function (data, textStatus) {
  if (data.redirect) {
              window.location.href = data.redirect;
         } else {
   $.alerts.dialogClass = "custom1";
   jAlert(data.message,"確認して下さい",clearAltCls);
         }
 },
 data:postData,
 dataType:"json",
 type:"post",
 url:"\/rakuzon\/themes\/itemAdd"
}); 

ちなみに、予断だが、ajaxの結果にレスポンス結果によってリダイレクトしたい
場合は、上記の4行目のようにすればよい。

0 件のコメント:

コメントを投稿