【问题标题】:Equivalent to ajaxSend and/or ajaxComplete with jsonp?等效于 ajaxSend 和/或 ajaxComplete 与 jsonp?
【发布时间】:2013-10-11 11:53:32
【问题描述】:

我现在使用:

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

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

【问题讨论】:

    标签: jquery ajax jsonp


    【解决方案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
    });
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-04-28
        • 2011-04-13
        • 2011-05-24
        • 2013-09-02
        • 2021-03-15
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多