2

今私は使用します:

$("#status")
    .on("ajaxSend", function() { $(this).show(); } )
    .on("ajaxComplete", function() { $(this).hide(); } );

ajaxが機能していたときにステータスを取得します。これはjsonで機能しましたが、jsonpでは機能しませんでした。これをjsonpで動作させる方法はありますか?ありがとうございました。

4

2 に答える 2

1

これはjQueryのバグ、または少なくともバグの考慮事項のようです。

beforeSend残念ながら、この時点では、jsonpリクエストを更新して同じものを使用する以外は何もできませんcomplete

function ajaxSend() { $("#status").show(); }
function ajaxComplete() { $("#status").hide(); }

$.ajaxSend(ajaxSend);
$.ajax({
   dataType: 'jsonp',
   beforeSend: ajaxSend,
   complete: ajaxComplete
});
于 2013-01-29T00:12:06.843 に答える
1

jQueryとajaxの比較的初心者なので、これがあなたの質問に答えるかどうかはわかりませんが、内部のイベントハンドラーajaxSetup()はjsonpリクエストに対して自動的に呼び出されますが、などのスタンドアロンハンドラーは呼び出され$(document).ajaxSend(function(event, jqXHR, settings){});ません。また、Explosion Pillsが述べたように、コールごとに手動でこれらをオーバーライドすることもできます。

$.ajaxSetup({
        beforeSend: function(jqXHR, settings) {
    },
        complete: function(jqXHR, textStatus) {
    }
});
于 2013-10-11T03:53:32.980 に答える