javascript - jQuery ajax 请求代理

标签 javascript ajax jquery proxy

如何使用 jQuery 执行以下操作:

  1. 一些库通过以下方式发送ajax请求 $.ajax
  2. 我需要捕获所有这些 请求,并在某些情况下中止 他们,而不是冒充另一个 数据。

我发现,在jQuery 1.5中引入了新方法,例如ajaxPrefilterajaxTransport。我还尝试了 ajaxSetupbeforeSend, 但我无法实现其中的 2 点...

最佳答案

除非您非常确定自己在做什么,否则不要使用此功能

我不确定 ajax 拦截器库。但我可以告诉你令人讨厌的黑客

  • 复制原始 jquery ajax 实例

          var oldAjaxInstance; //some global variable
          oldAjaxInstance = $.ajax;  //in document load
    
  • 并将你的 intercepert 方法分配给 $.ajax 指针

          $.ajax = myAjaxwrapper;
    

myAjaxwrapper 看起来像这样

function myAjaxwrapper(a) {
     //your logic to change the request data's
     if (you are ok to allow the ajax call) {
         //re Assgin the actual instance of jquery ajax
         $.ajax =oldAjaxInstance;           
         //and call the method
         $.ajax(a);
     }
     //Otherwise it wont be called
}
  • ajax 调用成功后,将 ajax 包装器重新分配给 jquery ajax

               oldAjaxInstance = $.ajax;  
               $.ajax = myAjaxwrapper;
    

关于javascript - jQuery ajax 请求代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885449/

相关文章:

javascript - Dygraph 不对称误差线

javascript - Scrapy:POST 请求返回 JSON 响应(200 OK)但数据不完整

javascript - JavaScript 中的基数排序

Javascript (Ajax) 解析 JSON 值

javascript - ng-disabled 不使用 Bootstrap 按钮

jquery - 使用 jQuery 计算高度在 Firefox 和 Chrome 中有所不同

java - 对 servlet 的多个 ajax 调用

javascript - 移动(平移)模型后绕模型中心旋转

javascript - 如何在调用 this._super 之前捕获 Promise? JavaScript

jQuery FullCalendar 事件通过拖动删除