Отказался подключаться к любым URL-адресам в Android-приложении Cordova

Я разрабатываю мобильное приложение Cordova для Android. Использование сенсорного Сенча в качестве основы пользовательского интерфейса. в приложении я звоню через веб-сервис. Раньше он хорошо работал со старой версией Cordova, недавно обновил Cordova Proj до 5.0.0, и с тех пор не может получить доступ ни к одному из веб-сервисов на более новой версии устройств Android. Я включил плагин белого списка в проект. также включили следующий метатег в index.html

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

config.xml:

<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />

Во время работы приложения выдается следующая ошибка:

"Refused to connect to 'http://my-server-url.ss.yy.com:8080/SomeServ/rest/someapp/appdata?_dc=1433398248330' because it violates the following Content Security Policy directive: "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.

Я не могу двигаться вперед отсюда. Попробовал много предложений на Google, но бесполезно. Пожалуйста, объясните мне, что здесь не хватает.

Примечание: в приложении я подключаюсь к нескольким серверам.

заранее спасибо!!

2 ответа

Вам нужно добавить URL сервера в ваш метатег, таким образом:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' my-server-url.ss.yy.com:8080  data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *">

Тогда соединения с my-server-url.ss.yy.com:8080 будут разрешены политикой безопасности.

Изменить:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

Для того, чтобы:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://my-server-url.ss.yy.com:*">

Теперь можно подключиться к вашему серверу.

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

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