Политика Безопасности Контента Cordova
У меня есть приложение Cordova, и после обновления (5.0.0) я не могу вызвать какой-либо ресурс вообще. Я добавил плагин whitelist и добавил следующий тег в индексе.HTML-код
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.azure-mobile.net localhost:1337 *.ajax.aspnetcdn.com">
я получил следующие ошибки:
отказался загружать скрипт'http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.2.5.min.js 'потому что это нарушает следующую директиву политики безопасности контента:" script-src 'self' 'unsafe-inline' 'unsafe-eval'*.azure-mobile.net localhost: 1337 *.ajax.aspnetcdn.com".
отказался загружать скрипт'http://localhost:1337/vorlon.js 'потому что это нарушает следующую директиву политики безопасности контента:" script-src 'self' 'unsafe-inline' 'unsafe-eval' *.azure-mobile.net localhost: 1337 *.ajax.aspnetcdn.com".
Я пробовал с политикой по умолчанию, которая должна разрешить все, но все равно не повезло.
Я также добавил следуя моему config.xml-файл
<access origin="*" />
<allow-navigation href="*" />
и используя следующие плагины:
C:ProjectsTavlaApp>cordova plugin
com.microsoft.azure-mobile-services 1.2.7 "Windows Azure Mobile Services"
cordova-plugin-whitelist 1.0.1-dev "Whitelist"
nl.x-services.plugins.calendar 4.3.4 "Calendar"
nl.x-services.plugins.insomnia 4.0.1 "Insomnia (prevent screen sleep)"
org.apache.cordova.inappbrowser 0.6.0 "InAppBrowser"
есть идеи, что попробовать?
3 ответов
подстановочные знаки принимаются, но только как схема, порт или в крайнем левом положении имени хоста:
*://*.example.com:*
...это будет соответствовать всем поддоменам example.com (но не example.com сам), используя любую схему, на любом порту.
ключ здесь, для вас, может быть частью в полужирный выше.
вы задаете:
localhost:1337
*.ajax.aspnetcdn.com
но все же называет
http://ajax.aspnetcdn.com
http://localhost:1337
возможно изменение
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.azure-mobile.net http://localhost:1337 http://ajax.aspnetcdn.com">
Я указываю порт, но вы можете заменить "http" на *
надеюсь, это поможет, или ведет вас в правильном направлении.
похоже, что что-то не так с моим плагином/платформой.
Я удалил все плагины
cordova platform rm android
cordova platform add android
затем прочитал плагины, и все работает.
Я получил эту проблему при попытке установить cordova-plugins-whitelist для Cordova 5. Вот журнал установки:
установка "cordova-plugin-whitelist" для android
This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.
как мы видим, этот плагин больше не нужен в Cordova v5!!