CORS и приложения для телефонных звонков

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

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

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

4 ответа

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

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

http://docs.phonegap.com/en/1.8.0rc1/guide_whitelist_index.md.html

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

Однако на iOS, если вы переключитесь с UIWebView новее WKWebView через https://github.com/apache/cordova-plugin-wkwebview-engine вам действительно нужно будет внедрить CORS.

Начиная с Cordova 5 вам нужно будет добавить плагин белого списка

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

В config.xml добавить

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

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

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

Другие вопросы по тегам