Отказался подключаться к любым 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:*">
Теперь можно подключиться к вашему серверу.
Примечание. Если вы подключаетесь к большему количеству серверов, вам нужно расширить это правило.