如何在HttpClient中的查询字符串中传递数组? [英] How to pass an array within a query string in HttpClient?
本文介绍了如何在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屋!
查看全文