在每个 ajax 请求上执行一段代码

Executing a piece of code on every ajax request

我正在处理 ASP.net 表单项目。在每个 ajax 请求中,我需要执行一段代码(在本例中,重置会话过期)。实现此目标的最佳方法是什么?

  1. 为 ajax 请求创建一个包装器,您将从用户代码中调用它
  2. 假设您正在使用 jQuery ajax 之类的东西,return 是一个 Promise,将您的 _always_run_this_function_ 链接到成功处理程序,然后 return .

由于 promise 可以有任意数量的处理程序,因此 1) 您的常用函数和 2) 用户函数将按顺序 运行。

   function AjaxWrapper(webMethodName, parameterListInJsonFormat) {  
       var promise = $.ajax({  
          url: "Service.svc/" + webMethodName,  
           contentType: "application/json; charset=utf-8",  
          type: "POST",  
           input: parameterListInJsonFormat  
         });  
         promise.done(_always_run_this_function_);
         return promise;
    }

详情:https://www.codeproject.com/Articles/636701/jQuery-Promise-An-introduction-to-AJAX-with-multic

在 AJAX 请求的生命周期中会发生许多全局 AJAX 事件:发送请求之前就是其中之一。您可以使用它来设置每次在您的页面中进行 AJAX 调用时运行的处理程序。

这可能会有所帮助 ASP.NET Ajax Life Cycle

可以使用ajax拦截器,

$.ajaxSetup({
beforeSend: function (xhr) {
    /// call your method here
}});