HTTP получить не вызывая данные - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть три запроса Get для API, поэтому я повторно использовал функцию, просто передав URL-адрес, который отличает один от другого.Однако, когда я вижу, шаг за шагом, поставщик возвращает данные, но функция ответа страницы не получает их, получая как нулевой или более конкретный «Неожиданный конец JSON».

Код страницы:

carregaNatureza() {
    this.despesaProvider.getComboBoxes('http://xx.xx.xx.xx:xxxx/api/v1/cadastros/natureza/get-dropdownlist/002/001')
    .then((arr_proj) => {

        this.obj_data = arr_proj;

        this.lista_natureza = [];
        for (let i = 0; i < this.lista_natureza.length; i++) {
            this.obj += (
                this.lista_natureza[i]
            )
            this.lista_natureza.push(this.obj);
        }
    })
}

Код провайдера:

getComboBoxes(url: string) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json; charset=UTF-8');
    headers.append('Authorization', 'bearer ' + this.global.tokenGlobal);
    let options = new RequestOptions({ headers: headers });

    return this.http.get(url, options)
      .toPromise()
      .then(response => {
          var json_data = (response as any)._body;
          var parsed = JSON.parse(json_data);

          var arr_data = [];

          for (var x in parsed) {
              arr_data.push(parsed[x]);
          }

          return arr_data;
      })
      .catch((error) => {
          var json_error = (error as any)._body;
          var parsed = JSON.parse(json_error);

          var arr = [];

          for (var x in parsed) {
              arr.push(parsed[x]);
          }

          return arr[0];
      });
  }

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, что вы застряли из-за этой строки кода.попробуйте сначала console.log (arr_proj).

  this.obj_data = arr_proj; //u initialize response here
  this.lista_natureza = []; //empty array
  for (let i = 0; i < this.lista_natureza.length; i++) {//checking length of empty array it wont let you come inside because you fail for condition
    this.obj += (
        this.lista_natureza[i]
        ) //rewriteing your actual response 
    this.lista_natureza.push(this.obj);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...