Angular2 HttpParams未按预期发送

Angular2 HttpParams未按预期发送,angular,http-parameters,Angular,Http Parameters,当使用Angular2 http发送带有查询参数的GET请求时,发送的参数并不像我预期的那样发送。而不是标准的键值对,例如 key1=val1&key2=val2 它作为HttpParams对象发送,例如 %7B%22param%22:%key1%22,%22value%22:%22val1%22,%22op%22:%22a%22%7D *解码: {“param”:“key1”,“value”:“val1”,“op”:“a”} 下面是我的代码片段: GetAllPlayer(幻想格式:stri

当使用Angular2 http发送带有查询参数的GET请求时,发送的参数并不像我预期的那样发送。而不是标准的键值对,例如

key1=val1&key2=val2

它作为HttpParams对象发送,例如

%7B%22param%22:%key1%22,%22value%22:%22val1%22,%22op%22:%22a%22%7D

*解码:
{“param”:“key1”,“value”:“val1”,“op”:“a”}

下面是我的代码片段:

GetAllPlayer(幻想格式:string,draftFormat:string):可观察{
设params=newhttpparams();
params=params.append('fantasyFormat',fantasyFormat);
params=params.append('draftFormat',draftFormat');
返回this.http.get(this.playersUrl,{params:params})
.map((res:Response)=>res.json())
.catch((error:any)=>Observable.throw(error.json().error | |“服务器错误”);
}
不确定这里出了什么问题,似乎与我遵循的其他示例一致…

GetAllPlayer(fantasyFormat:string,draftFormat:string):可观察{
 getAllPlayers(fantasyFormat: string, draftFormat: string): Observable<Player[]> {
    return this.http.get(`${this.playersUrl}?fantasyFormat=${fantasyFormat}&draftFormat=${draftFormat}`)
      .map((res: Response) => res.json())
      .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
  }
返回this.http.get(`this.playersUrl}?fantasyFormat=${fantasyFormat}&draftFormat=${draftFormat}`) .map((res:Response)=>res.json()) .catch((error:any)=>Observable.throw(error.json().error | |“服务器错误”); }

我建议这样做。我认为这里不需要使用HttpParams。而且我从来没有在我的代码中使用过它们。我将阅读有关它们的文章,但在我看来,这些案例之间除了语法和URI编码之外没有什么区别

谢谢@vitalii chmovzh。添加参数作为URL的一部分确实有效。HttpParams之所以可用是有原因的,我们很想看看它是如何正确使用的。
 getAllPlayers(fantasyFormat: string, draftFormat: string): Observable<Player[]> {
    return this.http.get(`${this.playersUrl}?fantasyFormat=${fantasyFormat}&draftFormat=${draftFormat}`)
      .map((res: Response) => res.json())
      .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
  }