Сборка Phonegap: источник доступа не работает для субдоменов

В Phonegap мне нужно отобразить некоторые изображения из CDN, который использует несколько поддоменов. Например:

<img src="http://a1.mzstatic.com/.....75.jpg">
<img src="http://a2.mzstatic.com/.....75.jpg">
<img src="http://a3.mzstatic.com/.....75.jpg">
<img src="http://a4.mzstatic.com/.....75.jpg">

Поскольку это внешние ресурсы на нескольких поддоменах, я установил в своем config.xml следующее:

<access origin="http://mzstatic.com*" subdomains="true" />

Однако все изображения отображаются сломанными, как будто они не могут позвонить на сервер. Я добавил:

<access origin="http://a1.mzstatic.com*" />

и изображения на этом домене начинают работать.

Я делаю что-то неправильно?

Чтобы продемонстрировать это и устранить все другие факторы, я разветвил проект phonegap-start здесь https://github.com/SeanBannister/phonegap-start, что демонстрирует мою проблему, я только что добавил свои элементы изображений и источник доступа в конфигурацию.

Обновление CDN имеет неограниченное количество поддоменов, поэтому я не могу просто перечислить их все.


person Sean Bannister    schedule 25.06.2013    source источник


Ответы (3)


попробуй <access origin="http://*.mzstatic.com" />

person Aguardientico    schedule 25.06.2013
comment
Какую версию ПГ вы используете? Проверьте эту ссылку ссылка - person Aguardientico; 25.06.2013
comment
какая платформа? андроид, айфон? Проверяете ли вы docs.phonegap.com/en/2.7.0/guide_whitelist_index .md.html ? - person Aguardientico; 26.06.2013
comment
и просто для теста: если вы установите его как <access origin="*" /> также для теста, удалите другие строки ‹access origin› - person Aguardientico; 26.06.2013
comment
Да, * определенно работает, но противоречит лучшим практикам, но заставляет меня думать, что в сборке PhoneGap есть ошибка. - person Sean Bannister; 26.06.2013
comment
И я тестирую на Android. - person Sean Bannister; 26.06.2013
comment
У меня это сработало с Cordova 3.5.0 (cordova.apache. org/docs/en/4.0.0/) - person juanra; 09.12.2014

Вы пробовали смешивать то, что сработало для домена 1 для вас:

<access origin="http://a1.mzstatic.com*" />

и ответ @Aguardientico сказал и сделал что-то вроде ....

<access origin="http://*.mzstatic.com*" />

И извините, просто написал бы комментарий к @Aguardientico, но недостаточно репутации :(

Обновление 1

Просмотрев https://build.phonegap.com/docs/config-xml, ты пытался:

<access origin="http://*.mzstatic.com*" subdomains="true" /> (Или, может быть, какая-то вариация "происхождения", о которой говорилось ранее)

Обновление 2

Хорошо, после часа или двух попыток различных комбинаций ... Вариант, который я смог приступить к работе, был только <access origin="*" /> Естественно, хотя это не очень хорошая практика - разрешать все, но похоже, что это единственное, что работает прямо сейчас. .. Люди из PG/Cordova действительно должны обновить свою документацию, чтобы понять, почему она не работает.

person Drew B.    schedule 25.06.2013
comment
Привет, Дрю, я действительно попробовал именно то, что ты предложил, когда написал Aguardientico. - person Sean Bannister; 25.06.2013
comment
О, подождите, неважно. Я слепой и не могу прочитать, что вы уже пробовали это. - person Drew B.; 25.06.2013
comment
Обновленный ответ снова ... Я перепробовал столько комбинаций, сколько мог придумать, но единственная, которая сработала, была <access origin="*"/> - person Drew B.; 26.06.2013
comment
Да, * определенно работает, но противоречит лучшим практикам, но заставляет меня думать, что в сборке PhoneGap есть ошибка. - person Sean Bannister; 26.06.2013

вам нужно попробовать это:

<access origin="http://*.mzstatic.com/*" subdomains="true" />

первый * разрешает любой символ перед именем хоста/домена, а второй * разрешает любой символ после «/»

Это должно работать.

person Kapilrc    schedule 06.06.2017