なんでよ!? jQuery のajaxでsuccess(たぶん普通だとdone)のコールバックが呼ばれない
ajaxの処理でサーバサイドでは、ちゃんとレンスポンスしてて、
ブラウザのデベロッパツールのnetworkみても、欲しい値が確認できるのに、successの処理に入らない現象が発生。
※ECCUBEの開発でCUBEさんは未だにjquery1.4使ってる都合で、古い書き方のajax処理しなきゃいけないから下記のような記述
>|javascript|
$.ajax({
type:'post',
url:location.href,
data:{'json': 'data'},
success:function(data){
},
error:function(req, stat, ex){
alert("原因不明のエラー");
},
complete:function(req, stat){
}
});
||<
原因はdataTypeを指定してないからっぽい。
正しくはこう。
>|javascript|
$.ajax({
type:'post',
url:location.href,
dataType:'json',
data:{'json': 'data'},
success:function(data){
},
error:function(req, stat, ex){
alert("原因不明のエラー");
},
complete:function(req, stat){
}
});
||<
ぐぅ。
そうなのか...
ちなみにもう1.4とか普通使わないから、1.10とかそれ以上のajaxの書き方について、
このブログでは端折って、参考サイトを2つほど...
jQuery モダンAjaxな書き方を目指して 〜Deferredを使ったAJAX〜 - Hack Your Design!
いつの間にか1.10をリリースしてるjQueryについていけてない1.4くらいまでの知識しかない人が見るとちょっとはマシになるページ | NIJILOG