2017-11-01 8 views
1

Angular2 httpを使用してQuery ParametersでGETリクエストを送信すると、送信されたパラメータは期待どおりに送信されません。例えば標準的なキー値のペアではなく。 HttpParamsは、例えばオブジェクトとしては、送られていAngular2 HttpParamsが期待通りに送信されない

key1=val1&key2=val2

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

ここで間違って何が起こっているかわからない、他の例と一致しているようだI続き...

答えて

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エンコーディングを除いて違いはないようです。

+0

ありがとう@ vitalii-chmovzh。 paramsをURLの一部として追加すると機能します。 HttpParamsは何らかの理由で利用可能で、正しく使用されているかどうかを知りたいです。 – rossco

関連する問題