angular拦截器拦截ajax请求

公司项目 用得是angularJS,同时在项目中还用到了一些jquery插件,如bootstrap table,这些自带ajax请求的插件。现在前端要做拦截器对http请求做统一处理,请问下,如何才能在angular拦截器中,拦截这些jquery请求?

阅读 3.5k
3 个回答

monkey patchXMLHttpRequest 对象的原型方法吧,因为请求库不管怎么封装,一般内部还是XMLHttpRequest,有的可能也用现代浏览器的fetch,比如:

(function(send) {

    XMLHttpRequest.prototype.send = function(data) {

        // do something...

        send.call(this, data);
    };

})(XMLHttpRequest.prototype.send);

如果要这么做的话,注意性能问题。

除了重置原型这种方式外,还有另一种方式。
通过angularjQuery自带的方式进行处理, 再将处理方法进行复用。

angular 配置拦截器的方法为 $httpProvider.interceptors
jQuery 配置拦截器的方法为 jQuery.ajaxSetup

可以将这两项配置同一个拦截器方法,以达到修改一处拦截器。全部请求都会生效。

还有看到了题主得到了bootstrap table, 自荐个表格组件 GridManager

去开源中国看看有类似的文章!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题