问题标签 [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 投票
2 回答
1170 浏览

angularjs - 在拦截器中执行 Ajax 请求

我正在尝试在 AngularJS 中创建一个拦截器来检查我是否已经登录。它通过查看$rootScope.user变量来做到这一点。

如果该$rootScope.user变量不存在,那么我想进行 Ajax 调用以查看服务器上是否还有活动的 Session。

问题是我最终陷入了无限循环,因为我的拦截器正在拦截我所有的 Ajax 请求......

我现在基本上有这个:

但这不起作用,它给出了这个错误:

或与 $http 相同:

那么我该如何解决这个问题呢?我想从我的拦截器发出一个 Ajax 请求,这样我就可以从数据库中检索用户信息。


请注意:我知道实现某种身份验证方法有很多不同的,也许是更好的方法,比如在标头中使用令牌。我知道这一点,我并不是在寻找有关不同的、更好的身份验证方法的答案。我想得到关于这个特定问题的答案。

0 投票
1 回答
693 浏览

angularjs - 角响应拦截器不适用于 RestAngular

我有以下代码:

切换微调器的基本拦截器。

拦截器适用于获取部分和内部角度内容的 http 请求,但不适用于 RestAngular 请求(它是 $http 的包装器)。

任何帮助深表感谢。

0 投票
0 回答
367 浏览

javascript - 在restangular请求拦截器中获取范围对象

我想在 ng-repeat 中为每个资源对象设置一个加载状态。Restangulars addRequestInterceptor 返回元素,但它似乎没有链接到角度 $scope。有没有办法从给定的参数中获取 $scope 对象?

0 投票
2 回答
1186 浏览

javascript - Angular 1.3.0 支持 JSON 响应,如何在 Angular 之前覆盖它或预解析响应?

在最新版本的 Angular (v1.3.0) 中,他们为 application/json 的内容类型标头添加了修复。现在我的所有回复都收到错误,因为它们不是有效的 JSON。我知道我应该更改后端以使用纯文本标题进行响应,但目前我无法控制。在 Angular 尝试解析响应之前,我有什么方法可以预先解析它?

我认为这是他们所做的修复: https ://github.com/angular/angular.js/commit/7b6c1d08aceba6704a40302f373400aed9ed0e0b

我遇到的问题是我从后端得到的响应有一个与 Angular 正在检查的不匹配的保护前缀。

我试图在配置中添加一个 http 拦截器,但这没有帮助,仍然在 Angular 本身之后解析。

我在控制台中遇到的错误(它来自 Angular 中 JSON 字符串的反序列化):

0 投票
1 回答
942 浏览

javascript - 正确使用变压器与拦截器

当发布到服务层中的端点以更新用户的配置文件时,我需要从请求有效负载(具有来自客户端的所需修改的配置文件)中删除某些值并将它们重新附加到响应有效负载(更新的配置文件来自服务器)。我目前正在使用 Angular 的请求和响应转换器执行行为,如下所示:

我将一个转换器添加到默认请求转换器,并将一个转换器附加到默认响应转换器。我的问题是,有没有更好的方法来做到这一点?也许使用拦截器,如此处所述,而不是?如果是这样,怎么做?

0 投票
1 回答
389 浏览

javascript - 对 Angular js 中的 $http 拦截器感到困惑

在 Angular js 中真的找不到关于 http 拦截器的好文档。在处理由ng-includei 引起的错误时,可以使用以下方法进行拦截responseError

这段代码取自这个问题how to catch angular ng-include error。我不明白,拦截器是如何工作的?他们必须返回什么?如何使用rejection传递给responseError拦截器的参数?在属性中用于将错误消息包含到失败指令的位置rejection,这是如何工作的?datang-include

0 投票
1 回答
2069 浏览

angularjs - AngularJS重定向未发生在拦截器中

我正在使用一个非常简单的拦截器来检查 403 Access Forbidden 的 responseRejection 以将用户重定向到登录名,但它不会重定向。我可以 console.log 一直到 $location.path 之前和之后的那一行,它永远不会发生。这事发生在别人身上过吗?我已经盯着这个看了一会儿...本来我什至不想使用$location,但是如果没有循环依赖,我就无法注入ui.router,我也不知道如何摆脱如此 $location 应该让我继续前进,而我正在考虑它。

0 投票
1 回答
2359 浏览

angularjs - AngularJs httpprovider.interceptors responseError 状态错误

我创建了一个简单的拦截器来将用户重定向到登录页面,服务器返回 401 错误。它不起作用,因为状态被设置为 404,所以 $location 永远不会被调用。

在此处输入图像描述

0 投票
0 回答
124 浏览

angularjs - angularjs http拦截器登录模式

我正在使用 angularjs http 拦截器来检查令牌是否有效。如果没有,它会重定向到登录页面。但是,当令牌过期并且用户忙于填写表格时,他们将失去这样的工作(例如,当他们单击提交时重定向到登录页面)。

我想要的是在他们登录后重新执行最后一个 http 操作,或者回到他们原来的位置。我可以想出很多方法来解决这个问题,但我的问题是在像 angularjs 这样的客户端 Web 应用程序中是否有一种模式/常见的方法来做到这一点。

0 投票
0 回答
442 浏览

angularjs - toState 的 http $interceptor $state 属性

我目前有一个 httpInterceptor,我可以通过以下方式访问当前状态名称:

但是我想得到的是它的状态,我找不到该属性

进一步详细说明,我正在使用 ionic 并且我在请求上显示了一个加载指示器,它允许我在一个位置使用 $ionicLoading

我想根据 to 和 from 状态有选择地更改加载指示器文本,因此我将 $ionicLoading 保留在一个位置。