HTTP GET не может прочитать свойство 'length' при передаче заголовка в запрос в ionic 3 - PullRequest
0 голосов
/ 24 апреля 2018

Я сделал провайдер ionic 3 для получения моих данных. Это мой код в rest.ts

getStats(): Observable<{}> {   
let headers = new HttpHeaders({'key': this.apiKey});
return this.http.get(this.apiUrl, {headers: headers});

}

Я вызвал этот метод в моем файле result.ts.

getStats(){
    this.rest.get().subscribe(stats => {
      console.log(stats);
    });
  }

Я хочу связать эти данные на своей домашней странице, но при запуске приложения я получаю сообщение об ошибке в консоли.

Невозможно прочитать свойство 'length' из неопределенного

Я использовал официальную документацию углового HTTP.

https://angular.io/guide/http

Может ли кто-нибудь указать мне правильное направление?

UPDATE:

заменил apikey на key: string = '-1'

Ошибка:

Ответ на предварительный запрос не проходит проверку контроля доступа: Нет Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном ресурс. Происхождение 'http://localhost:8100' поэтому не допускается доступ. Ответ имеет HTTP-код состояния 404.

core.js: 1449 ОШИБКА HttpErrorResponse {заголовки: HttpHeaders, статус: 0, statusText: «Неизвестная ошибка», url: null, ok: false,…} ошибка: ProgressEvent {isTrusted: true, lengthComputable: false, загружено: 0, всего: 0, введите: «error»,…} заголовки: HttpHeaders {normalizedNames: Map (0), lazyUpdate: null, заголовки: Map (0)} сообщение: «Ошибка Http ответ для (неизвестный URL): 0 неизвестная ошибка "имя: «HttpErrorResponse» нормально: ложное состояние: 0 statusText: «Неизвестная ошибка» URL: ноль proto : HttpResponseBase

1 Ответ

0 голосов
/ 24 апреля 2018

HttpClient сгенерирует ошибку Cannot read property 'length' of undefined, если значение какого-либо свойства в объекте HttpHeaders равно undefined или null. Вы абсолютно уверены, что this.key не имеет значения undefined или null во время создания объекта HttpHeaders? Попробуйте заменить this.key даже пустой строкой '' и посмотрите, не исчезнет ли ошибка.

Я воссоздал ошибку в этом StackBlitz . Проверьте консоль, чтобы увидеть ошибку.

Я бы рекомендовал установить значение по умолчанию для ключа, чтобы избежать этой ошибки. Что-то, что явно не будет передаваться как действительный ключ API.

key: string = '-1';

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...