Angular2 HttpParams未按预期发送

时间:2017-11-01 23:45:54

标签: 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"}

以下是我的代码片段:

  getAllPlayers(fantasyFormat: string, draftFormat: string): Observable<Player[]> {
    let params = new HttpParams();
    params = params.append('fantasyFormat', fantasyFormat);
    params = params.append('draftFormat', draftFormat);

    return this.http.get(this.playersUrl, {params: params})
      .map((res: Response) => res.json())
      .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
  }

不确定这里出了什么问题,似乎与我所遵循的其他例子一致......

1 个答案:

答案 0 :(得分:1)

 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'));
  }

我建议这样做。我不认为有必要在这里使用HttpParams。我也从未在我的代码中使用它们。我会读到它们,但在我看来除了这些情况之间的语法和URI编码之外没有区别。