0

У меня есть приложение cordova/phonegap, которое отлично работает сейчас на iOS, Android и даже wp8. Я создаю приложение для Blackberry10 и смог запустить его в симуляторе. Первое, что делает приложение, это попытаться сделать некоторые удаленные вызовы XHR, но это не удается. Вот ошибки я вижу в консоли удаленного хромированной:phonegap 3.2 Blackberry10 Cross-source доступ не разрешен

403 (Forbidden)

https://bloblbolob.kjsdghs.dsf Origin local:// is not allowed by Access-Control-Allow-Origin.

XMLHttpRequest cannot load https://sdkjf.jksdj.kdj Origin local:// is not allowed by Access-Control-Allow-Origin.

я редактировал config.xml и вручную заменить свойство доступа с этой линии:

<access subdomains="true" uri="*" />

Ho wever, это не имело никакого значения.

ответ

4

символ * не допускается с XmlHttpRequest (XHR) на BlackBerry 10.

Если вы собираетесь использовать XHR в вашем BlackBerry 10 приложения, вы должны белый список URL в качестве элемента доступа в config.xml.

Более подробная информация о доступе к внешним ресурсам: https://developer.blackberry.com/html5/documentation/beta/accessing_external_resources_webworks.html

+1

Я вижу. Похоже, мы должны наконец разобраться с этим в нашем приложении и найти способ предоставить явный доступ ко всем нашим удаленным серверам. Я также нашел аналогичные моменты в документации cordova 3.2: http://cordova.apache.org/docs/en/3.2.0/guide_appdev_whitelist_index.md.html#Whitelist%20Guide Еще раз спасибо за ваш ответ Adam! – Aras

+0

** Внимание: ** Связанная страница по-прежнему содержит примеры с использованием атрибута 'uri', который вызывает ошибки при создании. Согласно комментариям, это все равно не рекомендуется. Вместо этого использование атрибута 'origin' везде работало для меня. –

2

Существует один possibiblity обойти вашу проблему. Вы можете полностью отключить WebSecurity для вашего приложения:

http://cordova.apache.org/docs/en/3.2.0/guide_platforms_blackberry10_config.md.html

<preference name="WebSecurity" value="disable"/> 

Это имеет некоторые негативные последствия, но будет решать ваши проблемы. У меня была та же проблема, потому что бэкэнд моего приложения размещен в сети наших клиентов. Это делает невозможным «белый» список серверов.

+0

Смешные, Адам и я на самом деле обсуждали последствия этого обходного пути в другом вопросе: http://stackoverflow.com/q/20507930/527559 Где вы можете отправить приложение на ежевику и было ли ваше приложение одобрено с отключенной защитой веб-сайта? – Aras

+1

Я не отправлял свое приложение в AppStore. Мы остановили разработку для BB10 и привезем нашу версию Android в магазин. Это ограничение сбило меня с ума, потому что я не мог себе представить, что нет возможности написать приложение, которое связывается с пользовательским (и при отсутствии времени сборки) backend-URI. –

+0

В моем приложении (приложение, построенное с помощью GWT) нет никаких шансов переходить на другой URI или вводить JS, потому что это не злой eval. –

1

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

<access subdomains="true" uri="http://domain.in" />, как это отдельный тег для ежевики

ОБРАТИТЕ ВНИМАНИЕ: НЕ ADD * в разделе URI, как Blackberry не позволяет «*» подстановочные символы там.

Смежные вопросы