我正在按如下方式获取控制台日志:“'缺少必需的'页'参数”。
我正在尝试将其设置为我的get请求中的参数,它似乎可以正常工作,因为我可以让控制台将params作为数组打印出来。
我错过了什么? 控制台照片:
谢谢!
服务:
export class StoriesService implements OnInit {
private apiUrl = 'https://dev-api.byrd.news/v1/stories';
constructor(private http: Http) {
console.log("Yo! Stories!")
}
ngOnInit() { }
getToken() {
return Observable.fromPromise(firebase.auth().currentUser.getIdToken(true)
.then((idToken) => {
return idToken;
}))
}
getData(page: string, feed: string, hits: string): Observable<any> {
return this.getToken()
.flatMap(idToken => {
let headers = new Headers();
headers.append('user_token', idToken);
let params = new HttpParams()
.set('page', page)
.set('feed', feed)
.set('hits', hits);
let options = new RequestOptions({ headers: headers, params: params });
// console.log(this.idToken, options);
console.log("Token: " + idToken);
console.log(headers, params);
return this.http
.get(this.apiUrl, { params, headers })
.map((response: Response) => {
console.log("Breakthrough!")
return response.json() || {};
})
})
.catch(this.handleError);
}
private handleError(error: Response) {
return Observable.throw(error.statusText);
}
组件:
getStories() {
this.storiesService.getData('0', 'latest', '6')
.subscribe(data => {
console.log(data);
console.log("Ikke mere data")
})
}
编辑: 这是我得到的URL。对我来说,params看起来有点滑稽,还是因为它没有被解开?
答案 0 :(得分:0)
看起来服务器只是发送给你。然后问题不在于Angular,而在于你正在做的请求。
编辑:请求确实看起来有点奇怪。RequestOptions
的文档似乎表示params
应该是URLSearchParams
,而不是HttpParams
。也许这就是问题。