今私は使用します:
$("#status")
.on("ajaxSend", function() { $(this).show(); } )
.on("ajaxComplete", function() { $(this).hide(); } );
ajaxが機能していたときにステータスを取得します。これはjsonで機能しましたが、jsonpでは機能しませんでした。これをjsonpで動作させる方法はありますか?ありがとうございました。
これはjQueryのバグ、または少なくともバグの考慮事項のようです。
beforeSend
残念ながら、この時点では、jsonpリクエストを更新して同じものを使用する以外は何もできませんcomplete
。
function ajaxSend() { $("#status").show(); }
function ajaxComplete() { $("#status").hide(); }
$.ajaxSend(ajaxSend);
$.ajax({
dataType: 'jsonp',
beforeSend: ajaxSend,
complete: ajaxComplete
});
jQueryとajaxの比較的初心者なので、これがあなたの質問に答えるかどうかはわかりませんが、内部のイベントハンドラーajaxSetup()
はjsonpリクエストに対して自動的に呼び出されますが、などのスタンドアロンハンドラーは呼び出され$(document).ajaxSend(function(event, jqXHR, settings){});
ません。また、Explosion Pillsが述べたように、コールごとに手動でこれらをオーバーライドすることもできます。
$.ajaxSetup({
beforeSend: function(jqXHR, settings) {
},
complete: function(jqXHR, textStatus) {
}
});