【问题标题】:Missing required get parameter angular 4缺少必需的获取参数 angular 4
【发布时间】:2018-03-06 11:41:52
【问题描述】:

我得到如下控制台日志:“'Missing required 'page' parameter”。

我正在尝试将其设置为我的 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

【问题讨论】:

    标签: angular http typescript observable


    【解决方案1】:

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

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

    【讨论】:

    • 那么你对伴侣有什么建议?
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2021-05-07
    • 2021-11-05
    • 2018-10-28
    相关资源
    最近更新 更多