Не удается обойти CORS в приложении Ionic 4 - PullRequest
1 голос
/ 05 мая 2019

Я пытаюсь управлять своим GoPro Fusion, используя этот проект GitHub .Я могу контролировать его всякий раз, когда запускаю запрос POST, но теперь я пытаюсь прослушать изменения статуса на http://10.5.5.9/gp/gpControl/status, выполнив запрос GET.

Каждый раз, когда я запрашиваю этот URL, в моем инспекторе сафари я получаю следующее:

XMLHttpRequest не может загрузить http://10.5.5.9/gp/gpControl/status из-за проверок контроля доступа.Ошибка: Uncaught (в обещании): Ответ со статусом: 0 для URL: null Не удалось загрузить ресурс: Origin ionic: // localhost не разрешен Access-Control-Allow-Origin.

IЯ запускал мое приложение с ionic cordova run ios -l -c и пытался настроить прокси в ionic.config.json с помощью:

"proxies": [
  {
    "path": "/gp/gpControl",
    "proxyUrl": "http://10.5.5.9"
  }
]

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

Если я захожу по URL в моем мобильном браузере, он просто отлично загружает json, только когда я пытаюсь запустить на нем GET, он завершается неудачно и поражает меня ошибками 2 cors.

Мой код для фактического запуска GET выглядит следующим образом:

constructor(
  private http: Http
) {
  setInterval(() => {
    this.get('http://10.5.5.9/gp/gpControl/status').then(a => {
      console.log(a);
    });
  }, 1500);
}

public get(path, params = {}): Promise<any> {
  return this.http.get(this.baseUrl + path, params).toPromise();
}

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

1 Ответ

1 голос
/ 06 мая 2019

Решается простым использованием cordova-plugin-advanced-http

После тестирования AngularFire на стандартном проекте Swift, и он работает без каких-либо проблем, я установил вышеуказанный плагин, и все запросы работают должным образом.

...