Политика Безопасности Контента 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!!