问题标签 [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.
angularjs - Angularjs拦截器不起作用
我正在尝试创建一个$http
如下所示的拦截器:
拦截器失败并出现以下错误:
angularjs - 不允许 http 请求中的 Elgg 标头
我正在使用 AngularJS 开发前端应用程序,我正在尝试登录 elgg 平台。如此处文档中所述,如果要使用 HMAC 身份验证,则必须添加一些自定义标头。在 AngularJS 中,我使用了拦截器。
但我得到的回应是:
XMLHttpRequest cannot load http://localhost/elgg-1.9.8/elgg-1.9.8/services/api/rest/xml/?method=auth.gettoken.
Request header field X- Elgg-hmac-algo is not allowed by Access-Control-Allow-Headers.
我在本地主机上的网络服务器上有 apache,并且我已经配置:
<Directory />
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Request-Headers "*"
Header always set Access-Control-Request-Method "*"
AllowOverride none
Require all denied
</Directory>
我还检查了响应标头,这是我得到的:
HTTP/1.1 200 OK
Date: Sat, 30 May 2015 13:37:07 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1j PHP/5.6.3 mod_perl/2.0.8-dev Perl/v5.16.3
Access-Control-Allow-Origin: *
Access-Control-Request-Headers: *
Access-Control-Request-Method: *
X-Powered-By: PHP/5.6.3
Cache-Control: no-cache, must-revalidate
Expires: Fri, 05 Feb 1982 00:00:00 -0500
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 81
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
我找不到错误在哪里。我在服务器上设置了标头响应,但我仍然在控制台上收到此错误。谢谢
angularjs - 拦截器中的无限循环
我制作了一个使用 API 的 AngularJS 网站。此 API 提供了一些功能,例如身份验证 (Oauth)。
当 API 返回 401 错误时,表示access_token
已经过期,需要用refresh_token
.
我在 AngularJS 中创建了一个拦截器。它的目标是检查 API 返回的结果是否为 401 错误,如果是,则必须刷新令牌,然后处理先前被拒绝的请求。
问题是拦截器创建了一个无限循环。在初始请求第二次失败后,它应该停止但它没有。
所以这段代码:
- 在第一个请求失败时开始
- 刷新令牌
- 重试请求但再次失败(<-我只想让它停在这里)
- 刷新令牌
- 重试请求但再次失败
- 刷新令牌
- 重试请求但再次失败
- ETC...
javascript - Angular JS - My controller function its never return after execute my service script
The process to login a user on my app is working. It is connecting to a server and this is returned a 200 Status, so it's working fine. But after my service finish with its task, my controller is not executing its lines:
Controller:
Does anyone have an idea about how to resolve this? Maybe my interceptor is involved in this behavior. Here my scripts:
app.js
controller.js
service.js
ajax - AngularJS 简单的身份验证拦截器
每次我发出请求时,我都想在标头中传递我的令牌。我现在的做法是使用:
我怎么能这样做才能将其发送到每个请求,并且当它抛出错误时它应该执行
angularjs - Angular 与 Typescript:HTTP 注入器工厂与服务
我创建了一个我想用作 HTTP 注入器的 Typescript 类(参见代码...)。它作为服务(而不是工厂)被添加到 Angular 模块中。我注意到了一些问题。
- 当类用大写字母定义“请求”和“响应”函数时,注入器不起作用(这些函数永远不会被调用)。当用小写字母定义时,它们被调用。
- 当函数被正确调用时,“this”对象指的是全局窗口而不是对象。
我通过创建真正的工厂(参见代码...)并将其作为工厂添加到 Angular 模块中解决了这个问题。
但是,我很想了解为什么会这样。有什么想法吗?
注意“请求”与“响应”。前者将被调用。后者不会。
angularjs - 推送http拦截器时的循环依赖
我正在使用 http Interceptor 来拦截我的应用程序中的每个 http 请求。但我发现循环依赖:$http <- APIInterceptor <- $http <- $templateRequest <- $compile
这是我的服务代码:
并将其推为:
在配置函数中。我在这里做错了吗?即使我尝试使用手动注入 $http
$注射器
,但得到同样的错误。请帮助我。
angularjs - Angular JS - add a custom header to all GET/POST requests
I'm trying to use an interceptor to add an 'Authorization' header to all my GET/POST requests. Here is the interceptor:
The interceptor is being used in the main module as follows in the myApp.config part:
For some reason I can't see the Authorization header in the network tab(I'm using Chrome) and it's not getting to the server and I don't get any errors. The GET/POST request in my application are to a remote server that is NOT in my domain.
Any idea what am I doing wrong here?
Solution: I found the problem, it was on the server side - apparently if I set the Access-Control-Allow-Headers in the response to * it doesn't work but if I specify the headers literally it works just fine.
angularjs - 角度拦截器不被拒绝
$resource
调用一些 API。如果它返回一些标志,那么请求应该下降.catch()
到$resource('api/').get(...).$promise.catch();
我的拦截器不会触发那个调用。.then
无论如何它都会调用
拦截器代码:
如何获得相同的响应,但在捕获部分没有检查每个请求中的错误?
javascript - 使用 Angular 服务的请求拦截器对 REST get 调用进行简单身份验证
我想传入对 api 进行 REST 调用所需的用户名和密码组合。
控制器.js
我目前在控制台中收到两个错误。首先是未授权访问的 401 状态和有关在请求的资源上找不到跨源标头的错误。我自己无法将 X 原始标头放在请求的资源上,因为我无权编辑 API 的响应。