Ошибка CORS на производственной сборке на устройстве тоже - PullRequest
1 голос
/ 07 апреля 2019

Я создал приложение Ionic 4, используя этот CLI:

ionic cordova build android --prod

service.ts

  get(): Observable<any> {
   return this.http.get("http://api.openweathermap.org/data/2.5/forecast?lat=52.974431&lon=70.2398363&appid=myapi&units=metric");
  }

Почему все еще выдает ошибку CORS?

Доступ к XMLHttpRequest по адресу «http://api.openweathermap.org/data/2.5/forecast?lat=52.974431&lon=70.2398363&appid=myid&units=metric' из источника 'http://localhost:8100' заблокирован политикой CORS: Значение заголовка «Access-Control-Allow-Origin» в ответе не должен быть подстановочным знаком '*', когда режим учетных данных запроса 'включают'. Режим учетных данных запросов, инициированных XMLHttpRequest управляется атрибутом withCredentials.

Насколько мне известно, он должен работать на устройстве без ошибок нет? Почему он все еще показывает http://localhost:8100 на устройстве? Согласно этот документ он должен нормально работать на устройстве нет?

Примечание: Я использую chrome://inspect/#devices, чтобы получить ошибку выше?

1 Ответ

2 голосов
/ 07 апреля 2019

Недавно у меня возникла та же проблема, но я решил ее, используя cordova-plugin-advanced-http для устройств Android и IOS.

Установка

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

Используйте

import { HTTP } from '@ionic-native/http/ngx';

constructor(private http: HTTP) {}

...

this.http.get('http://ionic.io', {}, {})
  .then(data => {

    console.log(data.status);
    console.log(data.data); // data received by server
    console.log(data.headers);

  })
  .catch(error => {

    console.log(error.status);
    console.log(error.error); // error message as string
    console.log(error.headers);

  });

Подробнее: см. Официальная ссылка

...