用jsonp等效于ajaxSend和/或ajaxComplete?

时间:2013-01-29 00:06:38

标签: jquery ajax jsonp

现在我使用:

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

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

2 个答案:

答案 0 :(得分:1)

这似乎是be a bug in jQuery,或者至少是对错误的考虑。

很遗憾,此时您无法采取任何措施,除非更新您的jsonp请求以在beforeSendcomplete上使用相同的内容:

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

$.ajaxSend(ajaxSend);
$.ajax({
   dataType: 'jsonp',
   beforeSend: ajaxSend,
   complete: ajaxComplete
});

答案 1 :(得分:1)

成为jQuery&的相对新手ajax我不确定这是否能回答你的问题,但我发现ajaxSetup()内的事件处理程序会自动调用jsonp请求,而$(document).ajaxSend(function(event, jqXHR, settings){});之类的独立处理程序则不会。正如Explosion Pills所说,您也可以在每次通话的基础上手动覆盖这些。

$.ajaxSetup({
        beforeSend: function(jqXHR, settings) {
    },
        complete: function(jqXHR, textStatus) {
    }
});