【问题标题】:How can I get the requested url from ajaxStart function?如何从 ajaxStart 函数获取请求的 url?
【发布时间】:2012-09-02 10:11:34
【问题描述】:

我可以从 ajaxStart 获取请求的 URL 吗?我想对所有 ajax 请求执行一个通用操作,接受一些请求。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    不,在ajaxStart 内,您无权访问jqXHR 对象或ajaxOptions

    // Watch for a new set of requests
    if ( s.global && jQuery.active++ === 0 ) {
      jQuery.event.trigger( "ajaxStart" );
    }
    

    如您所见,没有参数被传递给ajaxStart。与ajaxSend对比:

    // Send global event
    if ( fireGlobals ) {
      globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
    }
    

    jqXHR 对象与设置一起作为参数传递:

    $(document).ajaxSend(function(evt, request, settings) {
      alert("Starting request at " + settings.url + ".");
    });
    

    另请参阅 this 答案以更好地了解此设计。

    【讨论】:

      【解决方案2】:

      您无法从 ajaxstart 函数获取请求的 url,您只能使用 ajaxsend 函数获取,因为 ajaxsend 函数针对特定请求而 ajaxstart 不是

      $( document ).ajaxSend(function( event, jqxhr, settings ) {
        if ( settings.url == "ajax/test.html" ) {
          $( ".log" ).text( "Triggered ajaxSend handler." );
        }
      });
      

      【讨论】:

      • 你拯救了我的一天!这与 ajaxStop 相结合,我的通用 REST 调用加载微调器就像一个魅力! (方法GET(加载),POST(保存),PUT(保存),DELETE(删除)我欠你一杯啤酒!
      猜你喜欢
      • 2021-05-02
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多