用jsonp等效于ajaxSend和/或ajaxComplete?

现在我使用:

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

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

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

不幸的是,除了更新你的jsonp请求以在beforeSendcomplete上使用相同的东西之外,你现在无法做任何事情:

 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) { } });