我得到控制台日志如下:“'missing required'page'参数”。
我正试图将它设置为get请求中的参数,而且它似乎可以工作,因为我可以让控制台将参数作为数组打印出来。
我错过了什么?
控制台照片:
谢谢!
服务:
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")
})
}
编辑:
这是我得到的网址。在我看来,这些情妇有点滑稽,还是仅仅因为它没有被人发现?
“https://dev-api.byrd.news/v1/stories?updates=%7B%22param%22:%22page%22,%22value%22:%220%22,%22op%22:%22s%22%7D&updates=%7B%22param%22:%22feed%22,%22value%22:%22latest%22,%22op%22:%22s%22%7D&updates=%7B%22param%22:%22hits%22,%22value%22:%226%22,%22op%22:%22s%22%7D&cloneFrom=%7B%22updates%22:null,%22cloneFrom%22:null,%22encoder%22:%7B%7D,%22map%22:null%7D&encoder=%7B%7D&map=null”
最佳答案
看起来服务器正在发送给你。问题不在于角度,而在于你的要求。
编辑:这个请求看起来确实有点奇怪。RequestOptions
的文档似乎说params
应该是一个URLSearchParams
,而不是一个HttpParams
。也许这就是问题所在。