问题标签 [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.
angular - 在 Angular HttpClient 拦截器中使用承诺
我可以在里面使用 promiseHttpInterceptor
吗?例如:
为什么我需要这个?因为在向服务器发出请求之前,我需要获取一个令牌以添加到请求标头。
我的拦截器:
要求:
我面临的问题:
->我在承诺解决之前收到此错误。
Promise resloves,我得到了我的令牌,但在错误之后。
angular - 角度测试和 HttpClient:TypeError:无法读取未定义的属性“获取”
在我的 Angular 4 应用程序中,我需要为使用内部使用 Angular HttpClient 的服务的组件创建测试。
尽管我在myHttpClientTestingModule
之间添加了,但我得到:imports
TestBed
TypeError:无法读取未定义的属性“获取”
每当组件调用MyService.someMethod()
(内部使用HttpClient.get()
)。
我尝试提供服务本身或为其提供模拟,但无论如何我都会收到错误消息。
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().data
I 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的代码
angular - 在 Angular HttpClient 中捕获错误
我有一个看起来像这样的数据服务:
如果我收到 HTTP 错误(即 404),我会收到一条讨厌的控制台消息: ERROR Error: Uncaught (in promise): [object Object] from core.es5.js 我该如何处理?
angular - 如何在测试中模拟 Angular 4.3 httpClient 的错误响应
我有一个下面interceptor auth-interceptor.service.ts
现在我试图模拟http.get
抛出错误,以便该方法handleError
控制错误消息。
以下是我对测试用例的方法auth-interceptor.service.specs.ts
刷新响应时,我不确定如何刷新错误响应,以便handleError
在我的拦截器中调用该方法并最终调用console.error
. 文档对我的情况没有任何示例。任何帮助或建议表示赞赏。
angular - 如何将正文添加到 Angular HttpClient 删除功能
我们的项目正在迁移到Angular4,并@angular/common/http Httpclient
用作默认网络工具。但我发现删除函数中没有body
参数。如何添加正文删除功能?谢谢。
angular - 角度 4 HTTP 客户端转换类型响应
在我的 Angular 4 项目中,我使用的是 HTTP 客户端,当我进行 GET 调用时,有时会明确响应,因此我必须执行以下操作:
但在这种情况下,我有这个错误:
“HttpResponse”类型上不存在属性“_embedded”
我解决了将响应转换为任何问题的问题:
那么,我是否必须对所有响应进行强制转换?这被认为是好的做法,还是我应该做其他事情?
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)
rxjs - 在 Angular HttpClient 的上下文中什么是冷可观察的
在使用 angular HttpClient
of angular 时,我知道 HttpClient post 方法使用冷可观察,并将进行 2 次单独调用以将数据发布到服务器。而且除非您不订阅 post 方法,否则它不会将数据发布到服务器。
虽然,Rxjs
cold observable 表示它将保留所有序列直到结束,并在订阅时全部触发。
它将如何对服务器进行 2 次单独调用以发布数据。