Ionic - $ http работает на мобильном устройстве, но в браузере показывает ошибку CORS и предполетную проверку.

Я разрабатываю мобильное приложение с использованием Ionic framework. Я использую $ http (POST с настраиваемым заголовком), и когда я пытаюсь

ионная подача

в браузере (Chrome, Firefox, ...) я получаю

Ответ на предварительный запрос не проходит проверку контроля доступа: для запрошенного ресурса нет заголовка Access-Control-Allow-Origin. Следовательно, к источнику 'null' доступ не разрешен. В ответе был код статуса HTTP 405.

ошибка. Если я включу плагин CORS в Chrome и попробую то же самое, я получаю

Ответ на предполетную проверку содержит недопустимый код статуса HTTP 405

ошибка.

Но все работает, когда я устанавливаю его на свой мобильный (Android / IOS) с помощью

ionic run android

or

ionic run ios

Что заставляет мой браузер ограничивать $ http и почему мой мобильный телефон разрешает это? Webview отличается от браузера?

для информации: - я использую плагины Cordova (по умолчанию) - консоль, устройство, заставку, строку состояния, белый список, клавиатуру.

пожалуйста, помогите мне здесь. Без правильного понимания я не могу просто создать мобильное приложение. Заранее спасибо.

ИЗМЕНИТЬ 1

Я использую REST API, который обрабатывает пользовательские запросы заголовков. На данный момент мне не разрешено изменять код API, потому что он уже давно работает нормально для собственного приложения для Android. Проблема в том, что я использую Ionic и, к моему удивлению, он работает на моей вкладке Samsung и iPad (когда я работаю без режима livereload).

Все, что я хотел знать, это то, что заставляет мой браузер ограничивать работу и мое мобильное устройство работает?

Разве WebView на мобильном устройстве не имеет политики безопасности, как в браузерах?


person Naveen Kumar V    schedule 24.10.2016    source источник
comment
Вы видели это сообщение stackoverflow.com/questions/33660712/   -  person Marko    schedule 25.10.2016


Ответы (2)


Почему мое мобильное приложение работает нормально, но не в браузере?

Я использую cordova-plugin-whitelist в своем проекте Ionic. Он реализует политику белого списка для навигации по веб-просмотру приложения. проверить источник

Чтобы браузер работал, определите прокси в моем ionic.config.json. Но это всего лишь обходной путь. Для производства мы должны сделать так, чтобы сервер разрешил ему явно заносить вызов API в белый список. проверить источник

person Naveen Kumar V    schedule 01.11.2016

@Naveen - Ionic написал в блоге статью о различиях между обработкой заголовка источника http в браузере и в приложении: http://blog.ionicframework.com/handling-cors-issues-in-ionic

person Mathieu Naon    schedule 12.12.2017
comment
Спасибо за ваш вклад. :) - person Naveen Kumar V; 13.12.2017