如何在HttpClient中的查询字符串中传递数组? [英] How to pass an array within a query string in HttpClient?

查看:190
本文介绍了如何在HttpClient中的查询字符串中传递数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的演员阵容:

['Elvis', 'Jane', 'Frances']

如何在HttpClient的查询字符串中传递此数组?

How to pass this array within a query string in HttpClient?

我尝试使用:

1)

let params = new HttpParams();
params = Params.append('actors[]', ['Elvis', 'Jane', 'Frances']);
this.http.get(url, { params: Params });

2)

let params = new HttpParams().set('actors[]', ['Elvis', 'Jane', 'Frances']);
this.http.get(url, { params: Params });

3)

let Params = new HttpParams();
Params = Params.append('actors[]', 'Jane');
Params = Params.append('actors[]', 'Elvis');
Params = Params.append('actors[]', 'Frances');
this.http.get(url, { params: Params }); 

1和2无效,因为打字稿显示:

1 and 2 doesn't work so as typescript gives:

[ts]类型'string []'的参数不能分配给类型'string'的参数.

[ts] Argument of type 'string[]' is not assignable to parameter of type 'string'.

3仅发送一项'actor []':'Frances'

3 sends only one item 'actors[]': 'Frances'

推荐答案

我认为最好的方法是将它们作为string添加到参数中,并让您的后端将其转换回array.

I think the best way is to add them to parameters as a string and have your back-end convert it back to an array or list.

let actorList = ['Elvis', 'Jane', 'Frances']
let params = new HttpParams();
params = params.append('actors', actorList.join(', '));
this.http.get(url, { params: params });

这篇关于如何在HttpClient中的查询字符串中传递数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆