【问题标题】:Intercepting ajax http responses outside AngularJS在 AngularJS 之外拦截 ajax http 响应
【发布时间】:2015-09-25 03:30:16
【问题描述】:

是否有可能以某种方式拦截和处理 Angular 之外的 http 响应?我不能使用 $httpProvider 因为目标脚本是在 Angular 初始化后加载的。所以我需要像 jQuery 中的 ajaxSuccess 一样工作的东西。

【问题讨论】:

  • 如果外部脚本使用 jQuery,您可以从 Angularjs 内部为 jQuery 添加拦截器。
  • 不,这里没有 jQuery
  • 如果你想拦截 Angular 发送的 http 请求,你需要以某种方式连接到 Angular。你不能正常拦截http请求。您能够使用 jQuery 发送或 Angular 发送的 http 请求的唯一原因是每个都提供了可以附加事件的钩子。
  • 您需要在加载其他库之前重载 XMLHttpRequest 对象本身。请记住,$http 也会使用它

标签: javascript ajax angularjs


【解决方案1】:

很少推荐这样做,因为它不是 Angular 并且通常表明应用程序设计不佳。但是没有什么能阻止他们在应用程序之外使用 Angular 功能。

angular.module('httpModule', ['ng'], function ($httpProvider) {
  $httpProvider.interceptors.push(...);
});

var http = angular.injector(['httpModule']).get('$http');

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多