2017-11-01 6 views
1

Angular2 http를 사용하여 쿼리 매개 변수로 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