ионный CORS с Ajax-вызовом сторонней библиотекой - PullRequest
0 голосов
/ 17 апреля 2019

При вызове Ajax сторонней библиотекой (обычная библиотека js, Oracle MCS),
Показаны ошибки CORS.
Origin ionic://localhost is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load https://x.mobile.ocp.oraclecloud.com/mobile/platform/users/login due to access control checks

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

Это распространенная проблема.
Ниже приведены методы, которые мы попробовали:

  1. Добавить заголовок политики содержимого индекса
    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
  2. Белый список локальных и удаленных адресов
    <allow-navigation href="https://x.mobile.ocp.oraclecloud.com:443" />
    <allow-navigation href="http://localhost:8080" />

Обход:
1. используйте UIWebview
не в порядке, так как он устарел
2. используйте cordova-plugin-advanced-http
не применимо, так как звонок сделан третьей стороной
3. использовать ионный локальный прокси в ionic.config.json для перенаправления не применимо, так как вызов сделан третьей стороной, поэтому не может изменить вызов

Пример теста:

let xhr = new XMLHttpRequest();
        xhr.open("POST", "https://x.mobile.ocp.oraclecloud.com/mobile/platform/users/login");
        xhr.send();

Надеюсь увидеть совет по выполнению вызова Ajax с использованием нативного метода Ajax.

1 Ответ

0 голосов
/ 17 апреля 2019

Рекомендую использовать нативный http:

установить плагин (ionic3):

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

использовать почтовый метод ref

Альтернатива ссылка . он кажется идеальным, потому что он будет работать в браузере (использовать угловой клиент), а в устройстве использовать собственный http

...