问题标签 [angular-httpclient]

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 投票
3 回答
12400 浏览

angular - 在 Angular HttpClient 拦截器中使用承诺

我可以在里面使用 promiseHttpInterceptor吗?例如:

为什么我需要这个?因为在向服务器发出请求之前,我需要获取一个令牌以添加到请求标头。

我的拦截器:

要求:

我面临的问题:

->我在承诺解决之前收到此错误。

Promise resloves,我得到了我的令牌,但在错误之后。

0 投票
1 回答
3469 浏览

angular - 角度测试和 HttpClient:TypeError:无法读取未定义的属性“获取”

在我的 Angular 4 应用程序中,我需要为使用内部使用 Angular HttpClient 的服务的组件创建测试。

尽管我在myHttpClientTestingModule之间添加了,但我得到:importsTestBed

TypeError:无法读取未定义的属性“获取”

每当组件调用MyService.someMethod()(内部使用HttpClient.get())。

我尝试提供服务本身或为其提供模拟,但无论如何我都会收到错误消息。

0 投票
5 回答
133155 浏览

angular - “对象”类型上不存在属性“json”

我正在尝试使用 Angular 2 HttpClient 通过 REST 获取数据。我正在关注https://angular.io/tutorial/toh-pt6的 Angular 教程,在Heroes 和 HTTP部分下,您将看到这段用于通过 http 获取 hero 数据的代码片段。

下面是我在我的应用程序中编写的类似版本

我正在使用 InteliJ Idea,调用 response.json() 上有一条红线,即使我尝试使用ng build进行构建,我也会收到错误消息。

“对象”类型上不存在属性“json”。

您可能会注意到,而不是json().dataI have json().results。这是因为根据教程,服务器响应了一个具有data字段的对象,但我自己的服务器响应了一个具有results字段的对象。如果您向下滚动教程一点,您会看到这一点。

请注意服务器返回的数据的形状。这个特定的内存中 Web API 示例返回一个具有数据属性的对象。您的 API 可能会返回其他内容。调整代码以匹配您的 Web API。

为了解决这个问题,我尝试了这样的事情

当我这样做时, .json() 方法已解决,但弹出另一个错误

Promise 类型不存在属性结果

我尝试通过定义一个接口来解决这个问题

并将get调用修改为

但这也没有用。又弹出一个错误

类型“OrderResponse”不可分配给类型“Response”。

需要注意的一点是,在教程中他们使用了 Angular HttpModule,但在我的应用程序中,我使用的是新的 Angular HttpClientModule,所以这可能就是错误出现的地方。

我是 Angular 2 的新手,这是我用它构建的第一个应用程序。如果上面的代码对新的 HttpClientModule 不再有效,我将不胜感激有关如何使用新的 HttpClientModule 实现相同的任何帮助。

我发现了类似的问题Property 'json' does not exist on type '{}'Property does not exist on type 'object'但没有一个答案对我有帮助。

更新

正如评论所建议的那样,新的 HttpClientModule 中没有 .json() 方法。对于如何使用新模块实现相同效果,我仍然很感激。从指南他们做了这样的事情

我完全理解,但我的问题是,代码不在组件中,而是在服务中,因此调用 subscribe 并将结果分配给实例字段没有多大意义。

我需要我的服务返回一个包装在 Promise 中的订单数组。我的组件可以像这样调用

我还想过在我的服务获取方法中声明一个局部变量,这样我就可以做到

但这对我来说没有多大意义,因为对 .get() 的调用是异步的,并且该方法甚至可能在获取所有数据之前返回,并且订单数组可能为空。

更新

这里要求的是handleError的代码

0 投票
3 回答
54229 浏览

angular - 如何使用 Angular 4.3 中的新 httpClient 处理未经授权的请求(状态为 401 或 403)

我有一个auth-interceptor.service.ts处理请求

但我收到以下错误。没有什么像它没有删除 cookie 或它没有导航到登录页面那样真正发生任何帮助或建议将不胜感激。

在此处输入图像描述

0 投票
12 回答
385958 浏览

angular - 在 Angular HttpClient 中捕获错误

我有一个看起来像这样的数据服务:

如果我收到 HTTP 错误(即 404),我会收到一条讨厌的控制台消息: ERROR Error: Uncaught (in promise): [object Object] from core.es5.js 我该如何处理?

0 投票
1 回答
60108 浏览

angular - 如何在测试中模拟 Angular 4.3 httpClient 的错误响应

我有一个下面interceptor auth-interceptor.service.ts

现在我试图模拟http.get抛出错误,以便该方法handleError控制错误消息。

以下是我对测试用例的方法auth-interceptor.service.specs.ts

刷新响应时,我不确定如何刷新错误响应,以便handleError在我的拦截器中调用该方法并最终调用console.error. 文档对我的情况没有任何示例。任何帮助或建议表示赞赏。

0 投票
4 回答
47941 浏览

angular - 如何将正文添加到 Angular HttpClient 删除功能

我们的项目正在迁移到Angular4,并@angular/common/http Httpclient用作默认网络工具。但我发现删除函数中没有body参数。如何添加正文删除功能?谢谢。

0 投票
1 回答
2050 浏览

angular - 角度 4 HTTP 客户端转换类型响应

在我的 Angular 4 项目中,我使用的是 HTTP 客户端,当我进行 GET 调用时,有时会明确响应,因此我必须执行以下操作:

但在这种情况下,我有这个错误:

“HttpResponse”类型上不存在属性“_embedded”

我解决了将响应转换为任何问题的问题:

那么,我是否必须对所有响应进行强制转换?这被认为是好的做法,还是我应该做其他事情?

0 投票
0 回答
6556 浏览

angular - Angular 2 http.get 响应错误 502 网关错误

我有 angular 2 typescript 应用程序。我有 3 个标签。当我单击每个选项卡时,数据将显示在卡片中。数据是通过使用 Angular HTTP 服务https://angular.io/docs/ts/latest/guide/server-communication.html# 的 rest api 访问的! #获取数据。它返回可观察的。大多数情况下,在 chrome 浏览器控制台中看到以下错误:502 Bad Gateway. 刷新页面几次后,它可以工作。如何解决这个问题?是断网的标签之间导航的问题吗?通过在我的服务中添加可观察的 retryWhen 方法可以解决问题吗?

GET http://restapi/api/data 502 (Bad Gateway) 加载资源失败:服务器响应状态为 502 (Bad Gateway)

0 投票
2 回答
819 浏览

rxjs - 在 Angular HttpClient 的上下文中什么是冷可观察的

在使用 angular HttpClientof angular 时,我知道 HttpClient post 方法使用冷可观察,并将进行 2 次单独调用以将数据发布到服务器。而且除非您不订阅 post 方法,否则它不会将数据发布到服务器。

虽然,Rxjscold observable 表示它将保留所有序列直到结束,并在订阅时全部触发。

它将如何对服务器进行 2 次单独调用以发布数据。