2017-09-25 111 views
0

即时获取控制台日志,如下所示:“'缺少必需的'页面'参数”。 我试图设置它作为我的get请求中的参数,它似乎工作,因为我可以让控制台打印出PARAMS作为数组。缺少必要的参数角度4

我在想什么? 控制台照片:See this

谢谢!

服务:

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

回答

0

它看起来像服务器只是发送给你。那么问题不在于Angular,而在于你所提出的请求。

编辑:请求看起来有点奇怪。 RequestOptions的文档似乎说params应该是URLSearchParams,而不是HttpParams。也许这就是问题所在。

+0

那么你建议队友是什么? – byblix