2017-08-30 75 views
3

第一块正按预期角4 HTTP GET与查询参数

getQuotes(): Observable<Quote[]> { 
    return this.http.get(this.url) 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
} 

现在我特林添加查询参数来this.url和URL都没有改变

getQuotes2(): Observable<Quote[]> { 
    let myParams = new URLSearchParams(); 
    myParams.append('author', 'authorName'); 
    myParams.append('catid', '123'); 
    let options = new RequestOptions({ params: myParams }); 

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

我已经检查devtools。高速缓存关闭。我尝试过{search:myParams},使用RequestOptions并返回this.http.get(this.url,{params:myParams}) 我在哪看不到我看到字符串concatination。这些参数是可选的,我将它们附加在条件上。

回答

5

你是否进口过PARAMS?

import { URLSearchParams } from '@angular/http'; 
+0

我检查过,是的,它的工作原理。缺少导入不会导致错误消息。 – Eldar

+1

@Eldar,因为有https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams;) –