2

现在我使用:

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

在 ajax 工作时获取状态。这适用于 json,但不适用于 jsonp。有没有办法让它与 jsonp 一起工作?谢谢你。

4

2 回答 2

1

这似乎是 jQuery 中的一个错误,或者至少考虑了一个错误。

beforeSend不幸的是,除了更新您的 jsonp 请求以在and上使用相同的东西之外,您此时无能为力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 回答