let owners = ['Chris', 'John'];
this.http.get('/pets', {'owners': owners}).subscribe(...);
请求就像.../pets/owners=Chris&owners=John
但是我想像.../pets/owners=['Chris', 'John']
这样的要求。
有什么方法可以做到这一点?
答案 0 :(得分:3)
我很好奇为什么您的API期望您发送这样的请求?
您要发送的数据应作为请求有效内容发送到POST请求。像这样:
let owners = ['Chris', 'John'];
this.http.post(`/pets/owners`, { owners }).subscribe(...);
或者您应该将它作为GET请求发送,然后在这种情况下作为查询参数发送:
let owners = ['Chris', 'John'];
this.http.get(`/pets?owners=${owners.toString()}`).subscribe(...);
如果您仍在发送像这样的数据,那么您的服务器如何截获此请求?我之所以这样问,是因为您没有将owners
数组设置为任何值。
如果您仍然想像这样发送,请按以下步骤操作:
let owners = ['Chris', 'John'];
this.http.get(`/pets/owners=${JSON.stringify(owners)}`).subscribe(...);
但是话又说回来,我不太确定您的后端如何理解这个请求。
答案 1 :(得分:0)
我建议您使用发布请求,并在请求正文中传递所有者列表。
例如:
public serviceMethod(owners): Observable<expectedType> {
let headers = new HttpHeaders();
headers = headers.set('Content-Type', 'application/json');
let params = new HttpParams();
return this.http.post('/pets', owners, {headers: headers, params: params});
}
然后,您可以在需要使用的地方订阅该服务方法:
service.serviceMethod(['Chris', 'John']).subscribe(...);