Подтвердить что ты не робот

Приложения CORS и phonegap

Нужны ли в приложениях телефонной связи любые изменения CORS (например, настройка Access-Control-Allow-Origin: *)? У меня есть успокоившийся API, размещенный на Heroku, и задавался вопросом, нужно ли мне устанавливать этот заголовок, чтобы мое приложение для телефонных разговоров вызывало службу?

Я думал, что, поскольку приложение для телефонных разговоров на самом деле не размещено в домене, тогда CORS не требуется, и я не буду получать проблемы с перекрестным доменом?

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

4b9b3361

Ответ 1

PhoneGap вы можете просто XHR напрямую на удаленные серверы, и это должен "просто работать". Междоменная политика не применяется к PhoneGap (по разным причинам, в основном потому, что ваше приложение по существу запуск файла://URI on-device).

Помните, что вам нужно настроить белый список для своих приложений для доступа к этим внешним доменам. Проверьте эту ссылку:

http://docs.phonegap.com/en/1.8.0rc1/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

Ответ 2

Ни одна из платформ по умолчанию для платформы Cordova (PhoneGap) не требует CORS, несмотря на то, что файлы HTML размещаются локально (file://) и обращаются к веб-домену.

Однако, на iOS, если вы переключитесь с UIWebView на новый WKWebView через cordova-plugin-wkwebview-engine, вы действительно должны внедрить CORS.

Ответ 3

Да Вам нужно активировать CORS на сервере, на котором размещен ваш API. Я запускаю приложение Phonegap для iOS. Мое приложение запрашивает json из API сервера на Apache. Я активирую CORS на сервере, чтобы получить данные, иначе я ничего не получаю в своем приложении, никаких ошибок и данных.

Обратите внимание, что параметр доступа в файле конфигурации позволяет фильтровать, какой домен вашего приложения разрешен для запроса, но ничего не делает с разрешениями сервера.

Ответ 4

Как и в случае с кордорой 5, вам нужно добавить плагин с белым списком

https://github.com/apache/cordova-plugin-whitelist

В файле config.xml add

<!-- Don't block any requests -->
<access origin="*" />