问题标签 [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 回答
4381 浏览

json - Angular:如何将来自 HttpClient 请求的 JSON 结果映射到类实例?

我有以下似乎错误的代码:

我知道 API 返回的 JSON 对象与我的 TypeScript 类的实例不同。但是,我想使用 TypeScript 类中定义的属性。

有没有更好的方法将来自我的 API 调用的数组映射到实际上由 的实例组成的数组ClientSearchResult

这是ClientSearchResult对象:

0 投票
3 回答
7328 浏览

angular - 如何使用 HttpClient 在 Angular 4.3 上使用对象为 HTTP 请求创建 HttpParams

我有确切的角度版本 4.3.2,由于依赖关系,我无法更新。所以现在我坚持这个版本。我有带有动态参数的对象(里面可以有其他键和值):

我想做类似的事情:

但没有这样的 params.append(query) 方法。所以我需要遍历查询键并将它们一一添加到参数中。有没有更简单的解决方案?

编辑1:

根据this answer这可以从角度5.0.0-beta.6(2017-09-03)开始完成,但对我来说不是解决方案。 https://stackoverflow.com/a/46317900/1995258

0 投票
1 回答
1684 浏览

javascript - angular 4服务构造函数问题

我的身份验证服务有问题。如果我在构造函数中发出 http 请求,它会被调用 259 次。如果我删除 http 调用,它会被调用一次。我使用共享模块来提供该服务的唯一实例。

角度版本:4.4.4

控制台打印

这是我的共享模块:

还有我的 AuthService:

谢谢!

编辑:我发现了问题。来自 AuthInterceptor。当我尝试获取授权令牌时,它会启动一个无限循环:

现在如何在不使用注入器的情况下恢复 Interceptor 中的 authService?

最终编辑:我想出了如何从我的 authService 获取令牌而不进行无限循环。问题是我用来为每个请求添加令牌到授权标头的 HttpInterceptor。在我的 AuthService 构造函数中,我调用了发出 http 请求的登录方法.. LOOP: INTERCEPTOR => AUTH SERVICE => HTTP CLIENT 并再次 INTERCEPTOR

因此,现在我在拦截器中进行一些检查,例如:

也许可以帮助遇到同样问题的人。PS:喷油器需要在检查后调用

感谢帮助!

0 投票
5 回答
76136 浏览

arrays - Angular - HttpClient:将获取方法对象结果映射到数组属性

我正在调用一个返回 JSON 对象的 API。我只需要将数组的值映射到 Observable 。如果我调用只返回数组的 api,我的服务调用就可以工作。

下面是我的示例代码..

如果返回的是 JSON 对象,如下所示,则失败..

现在,如果我只返回数组,这个就可以了

如何将 JSON 对象 Observable 映射到 Array Observable 中???

0 投票
3 回答
36002 浏览

javascript - Angular 4 Http POST 不起作用

我希望每个人都做得很好。我最近开始使用 angular 4.4,我一直在尝试将数据发布到我的 api 服务器,但不幸的是它不起作用。我已经花了大约 2 天的时间,但仍然没有成功。并且已经尝试过angular.io的 6-7 篇文章。我已经尝试过HttpHttpclient模块,但似乎没有任何效果。

问题是,每当我尝试将数据发布到我的服务器时,Angular 都会发出 http OPTIONS类型请求而不是 POST

而且我还尝试发送带有请求的自定义选项,但仍然没有成功。

我使用的是 ASP.NET core 2.0,但由于它不起作用,我也尝试了简单的 php 代码,这是 php 的服务器端代码。而且它也不起作用。

注意:服务器上也启用了 Cors。另外,我还尝试了简单的获取请求,并且它工作得很好。

我真的很感激一些帮助。

提前致谢

0 投票
3 回答
29540 浏览

angular - 多个对象放入 HttpParams

我在表单控件中有一些类别,我将它们发送到一个字符串数组中,如下所示:

[1,4,6]

那是我的实际代码:

但是我想将它们作为对象数组发送,使用旧版本的 angular Http 我能够对对象进行 foreach 并附加每个类别。但我不知道如何获取每个类别并将每个类别都附加到参数。我需要这样:

...categoryId=1&categoryId=4&categoryId=6...

0 投票
1 回答
49 浏览

angular - 更改组件的属性取消订阅方法

我目前正在开发一个 Angular 4 应用程序。我正在使用一个安静的 Web 服务从数据库中获取数据。

我创建了一个名为的前端服务UsersListService,该服务有一个方法,该方法返回一个我在组件中订阅的 observable。我想将组件的属性 users 更改为 web 服务返回的数据,但不幸的是组件的属性始终设置为其默认值。

因此,一旦加载了页面,我就得到了 Web 服务返回的数据,但是一旦我进行搜索或分页,用户就会被设置为其默认值 ["1","2","3"]。

这是服务方法:

这是我的组件:

这是我的html

0 投票
3 回答
6074 浏览

angular - Angular 4:注入 HttpClient 有什么好处

Angular 文档之后,HttpClient被注入到app组件中。我在另一个指南上看到这是一个“有利的”,没有解释。

对此我有一些疑问:

0 投票
0 回答
9217 浏览

angular - 角 2 4 HttpClient。POST 请求 - 如何获取状态码

如何获取响应 POST 请求的状态码?我的服务方法返回:

在我的组件中,我调用此方法并订阅:

但是在浏览器控制台中什么都没有 - 但是当请求包含错误时,然后this.responseStatus = err.status返回正确的状态代码,但res.statusres不包含状态代码,只有响应正文。

编辑:

零件:

服务:

处理错误.ts

POST:/api/login 在此处输入图像描述 我登录正确,但仅此而已......我期望在浏览器控制台中:console.log('bla bla');Http没有问题。

0 投票
1 回答
1899 浏览

angular - 如何将同一个 observable 与多个映射一起使用?

我的代码有一个Subjectwhich,当添加新值时会触发一个 HTTP 请求,该请求返回一个Observable.

我想以两种不同的方式处理这些数据(使用相同的数据),并将结果Observables存储在group和作为使用管道times放入的值。ngForasync

虽然这确实有效,但 HTTP 请求会发送多次 - 我只希望每个订阅发送一次。

下面是一个最小的例子。

实现这一目标的最佳方法是什么?