问题标签 [angular-http-interceptors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
901 浏览

javascript - Angular $http 承诺无法解决

我目前正致力于在 AngularJS 1.3 中构建登录流程。我的问题是从 $http 调用返回的承诺没有解析其“.then”内的代码。

我正在处理从服务器返回的错误消息,特别是处理当用户输入错误的用户名或密码时返回的任何 401 错误。但是,当返回 401 时,.then 永远不会自行解析,并且其中的代码永远不会运行。

相关代码如下:

登录表单的控制器在其作用域上作为登录函数,如下所示:

我有一个会话工厂来处理登录和其他基于会话的需求。登录代码为:

我已经在问题所在的代码中添加了注释。我不知道为什么这段代码不起作用。根据我对承诺的理解,无论响应是什么,错误的成功,“那么”都应该解决。

我有一个拦截器正在运行,但我尝试禁用它,但最终结果没有运气。

我错过了什么吗?

0 投票
1 回答
577 浏览

angularjs - 如果离线,如何设置 http 拦截器

我正在使用 ionic 构建一个应用程序,并且在每个加载的请求上都显示一个加载指示器。当请求完成时,加载指示器被移除。当存在网络连接时,这非常有用。

离线时,请求开始并显示加载指示器。问题是加载指示器永远不会消失,因为请求永远不会完成。我怎样才能最好地处理这个?我在考虑超时什么的。最好的方法是在用户离线时根本不启动请求。

0 投票
2 回答
1504 浏览

javascript - Angularjs(1.3.6+) $resource 拦截器和全局 401 处理程序

我的问题是关于$resource拦截器(responseError)。我想强调一下,我基于的 angularjs 是V1.3.6.

问题:

当我收到 401 响应时,responseError的参数是 AN ERROR OBJECT ,因为来自服务器的响应是带有 statusSyntaxError: Unexpected token U的纯文本。Unathorized401

但我想得到 ,如果是response.status,就做点什么401

任何帮助将不胜感激。

0 投票
1 回答
2040 浏览

angularjs - AngularJS:$http 拦截器将每个调用方法更改为 OPTIONS

因此,我试图拦截 http 调用,以便在每个调用中添加 Authorization 标头(如果存在)。这很好用,除了我使用哪种 http 方法(GET、POST、DELETE),它都会使用 OPTIONS 方法发送请求。我究竟做错了什么?

服务器是带有restify的nodejs。

0 投票
3 回答
1824 浏览

javascript - 共享 AngularJS $http 拦截器

我想知道 Angular.js $http 拦截器是否在整个应用程序中共享。
假设我有一个myDependentApp模块,在许多应用程序之间共享。该模块配置了一些拦截器来控制 $http 请求/响应。我通过在应用程序引导程序中声明它来包含该模块:

我有应用程序模板:

myDependentApp拦截器会活跃吗myApp

感谢帮助。

0 投票
1 回答
1173 浏览

ajax - 获取请求来自拦截器的范围

在 AngularJS 响应错误拦截器中,有没有办法检索当前请求的范围?

0 投票
0 回答
348 浏览

angularjs - 配置阶段后修改或访问角度拦截器

配置阶段后是否可以访问/修改$http拦截器?我正在调试一个由于部署在不同的服务器上而只会中断生产的应用程序,所以不幸的是我无法在本地更改拦截器代码并弄清楚发生了什么。

如果无法访问/修改拦截器,也许可以替换$http. 这是替换假设服务的示例:

但是,我不确定如何创建新$http服务(我可以将修改后的拦截器传入其中)。我也抢$httpProvider不到

ng-app也许在页面的单独部分上引导一个新的会起作用?然后我可以抓住$http服务并更换它,就像上面一样。

其他想法:

谢谢!

0 投票
3 回答
4675 浏览

angularjs - 如何在 Angular $http 服务中优先处理请求?

我正在开发一个具有大量延迟数据加载的应用程序。我想根据“优先级”参数对 http 请求进行优先级排序。

这是使用它的概念。

我正在考虑使用 $http 拦截器。像这样的东西:

但我不能在这里回报承诺。有任何想法吗?

0 投票
2 回答
136 浏览

angularjs - 使用 AngularJS 防止类似的 POST 请求

我目前正在构建一个带有多个小部件的仪表板页面。这些小部件通过 REST 调用 ($resource) 检索它们的数据。一些小部件进行类似的调用,我不想 DDOS 我们的服务器,所以我正在寻找一种方法来只进行一次调用并以相同的响应解决所有类似的请求。

由于我仅限于使用 POST 请求,因此我无法使用 $resource 提供的缓存选项。这似乎正是我想要的,但仅适用于 GET 请求。

我正在考虑使用http拦截器对类似的POST请求进行排队,只触发其中一个并在第一个得到响应时解决它们。

但是,我似乎无法将这些部分拼凑在一起,因此不胜感激。我对其他选择持开放态度。

亲切的问候,蒂姆

0 投票
1 回答
578 浏览

angularjs - 如何防止 Angular 中的错误记录?

我正在使用 httpResponseInterceptor 来检查过期的会话令牌。我能够检测到它并通过向我的用户发出很好的通知来结束我的会话,但我仍在寻找一种方法让控制台不输出请求错误:

GET http://api.xx.xx/accounts/82 401(未经授权)

这是我的代码的简化版本:

需要明确的是:我确实想拒绝承诺,因为应该取消一些活动进程。我只是不想要错误信息。

谢谢你的帮助!