Angular> = 4.3,httpClient.get params为空
发布时间:2020-12-17 17:05:07 所属栏目:安全 来源:网络整理
导读:我正在尝试将我的Http请求迁移到HttpClient请求. 我能够迁移我的帖子查询但我在迁移获取查询时遇到问题.当我这样做时,我的后端没有分别收到任何参数,它告诉我没有提供参数并且为空. 我做错什么了吗? import {HttpClient,HttpHeaders,HttpParams} from '@ang
我正在尝试将我的Http请求迁移到HttpClient请求.
我能够迁移我的帖子查询但我在迁移获取查询时遇到问题.当我这样做时,我的后端没有分别收到任何参数,它告诉我没有提供参数并且为空. 我做错什么了吗? import {HttpClient,HttpHeaders,HttpParams} from '@angular/common/http'; constructor(private httpClient: HttpClient) {} findItems() { let params: HttpParams = new HttpParams(); params.set('something','hello'); this.httpClient.get<any[]>('http://localhost:3000/apath/',{params}) .subscribe((results: any[]) => { console.log(results); },(errorResponse: any) => { console.error(errorResponse); }); } 任何的想法? 解决方法
目前HttpParams是不可变的,你应该设置params如下:
// for set method let params: HttpParams = new HttpParams().set('something','hello'); // for append method let params: HttpParams = new HttpParams().append('something','hello'); HttpParams的set和append方法将用set和append覆盖原来的params实例和最新更新的实例,最后返回新实例. 所以我们可以在多行中完成,如下所示: let params: HttpParams = new HttpParams(); params = params.set('something','hello'); params = params.append('something2','hello2'); Plunker demo 重要: 从Angular v5.0.0开始,您可以使用HttpParamOptions中的fromObject同时添加多个参数. const param = new HttpParams({fromObject: {aaa: '1',bbb: '222'}}); 您也可以直接将对象参数设置为HttpClient方法 const obj = {aaa: '1',bbb: '222'}; this.http.get('test',{ params: obj}).subscribe(); 请参阅demo,第二种方式,请检查浏览器的网络以确认参数已成功添加. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 获取自己电脑的IP
- unix – openwrt:在NTP服务器上使用rdate?
- angularjs – Angular $http:在’timeout’配置上设置一个
- JBossESB教程(五)——怎样去调用一个WebService
- shell – 如何检查PHP中是否存在stdin(php-cgi)?
- 下拉菜单 – BootStrap3点击项目后,保持下拉菜单打开
- scala – 在IntelliJ IDEA 12中无效的Playframework插件
- yum安装rabbitmq3.6.11与erlange20配置及优化
- Angular 小试牛刀[1]-Getting Started
- 【数据结构】·【顺序表】