загрузить удаленные данные из JSON - PullRequest
0 голосов
/ 10 июля 2019

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

В запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Вот почему я использую политику CORS IONIC, чтобы избежать этой ошибки. Но теперь я сталкиваюсь с ошибкой

Types of property 'headers' are incompatible.
[ng]  Type 'Headers' is not assignable to type 'HttpHeaders | { [header: string]: string | string[]; }'.
[ng]    Type 'Headers' is not assignable to type '{ [header: string]: string | string[]; }'.
[ng]    Index signature is missing in type 'Headers'.

Я использую http-метод для получения данных от json, но получаю сообщение об ошибке «Нет заголовка« Access-Control-Allow-Origin »на запрошенном ресурсе». Вот почему я использую политику CORS IONIC, чтобы избежать этой ошибки.

Функция для загрузки данных:

Reddit-data.Service.ts

getRemoteData() {
  const headerDict = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Access-Control-Allow-Headers': 'Content-Type',
  }
  const requestOptions = {
    headers: new Headers(headerDict),
  };
  this.http.get("url", requestOptions).subscribe((res) => {
    //console.log(data);
    err => {
      console.log(err)
    }
  });
}

homepage.ts

ngOnInit() {
  this.redditService.getRemoteData();
}

Я получаю ошибку заголовка:

[ng] ERROR in src/app/services/reddit-data.service.ts(56,75): error TS2345: Argument of type '{ headers: Headers; }' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: HttpParams | { [param: string]: string | string[]; }; reportProgress?: boolean; responseType?: "json"; withCredentials?: boolean; }'.
[ng]  Types of property 'headers' are incompatible.
[ng]    Type 'Headers' is not assignable to type 'HttpHeaders | { [header: string]: string | string[]; }'.
[ng]    Type 'Headers' is not assignable to type '{ [header: string]: string | string[]; }'.
[ng]    Index signature is missing in type 'Headers'.

Ошибка изображения

1 Ответ

1 голос
/ 10 июля 2019

У вас ошибка при инициализации вашего requestOptions объекта.Вы можете предоставить объект типа { [param: string]: string | string[]; }.

const requestOptions = {
    headers: headerDict
};

или использовать класс HttpHeaders вместо Headers.

...