Приложение Ionic Backand отказалось от подключения к серверу на устройстве Android, а не на эмуляторе

Недавно я научился создавать мобильное приложение с помощью Ionic, и мне понадобился бэкэнд, поэтому я решил использовать фреймворк Backand. Я разрабатываю в Visual Studio, и все отлично работает при запуске из эмулятора, и все вызовы службы работают отлично, однако, когда я пытаюсь выполнить те же операции службы (POST) с устройства Android, я получаю следующую ошибку.

Отказался подключаться к 'https://api.backand.com/1/objects/player/'; поскольку он нарушает следующую директиву политики безопасности контента: «данные default-src 'self': gap: https://ssl.gstatic.com 'небезопасно-eval

Я нашел аналогичную проблему, в которой решение заключалось в том, что мне может понадобиться указать адрес сервера в метатеге 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 *; connect-src https://api.backand.com:*">

Однако это приводит к сбою приложения, и теперь я зашел в тупик относительно того, куда мне идти дальше. Я был бы рад предоставить любую дополнительную информацию, которая может быть необходима, любая помощь будет принята с благодарностью!

Спасибо




Ответы (2)


Это руководство по белому списку Cordova и политике CSP: http://taco.visualstudio.com/en-us/docs/cordova-security-whitlists/. Если у вас возникнут дополнительные проблемы с этим сценарием, отправьте свои вопросы по адресу [email protected].

Раскрытие информации: я работаю в команде Cordova в MSFT.

person Linda Z    schedule 01.04.2016
comment
Спасибо! Я обязательно продолжу свое конкретное решение. - person Stephen; 03.04.2016

убедитесь, что вы добавили плагин cordova-whitelist-plugin после того, как добавили платформу Android в свое приложение.

Порядок команд должен быть:

ionic platform add android

и после этого

cordova plugin add cordova-plugin-inappbrowser
ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git

если вы измените порядок, ionic установит плагин только для текущей платформы, то есть ios.

person Ygalbel    schedule 30.03.2016
comment
Если вы сначала добавите плагин, он будет добавлен только для текущей платформы IOS. Если вы сначала добавите платформу Android, плагин будет добавлен для обоих. - person Ygalbel; 31.03.2016
comment
Я добавил как inappbrowser, так и плагин белого списка, и это сработало! Однако он жалуется, что я не использую тег безопасности мета-контента. Я добавил следующий предложенный метатег в приложение ‹meta http-equiv=Content-Security-Policy content=default-src 'self' data: gap: ssl.gstatic.com «unsafe-eval»; style-src 'self' 'небезопасный встроенный'; медиа-источник *; connect-src 'self' api.backand.com› Однако, когда я включаю этот метатег, я получаю сообщение об ошибке. - person Stephen; 31.03.2016
comment
Я получаю сообщение об ошибке: «Отказано в подключении к 'api.backand.com/1/objects /player', так как это нарушает следующую директиву Content Security Policy: default-src 'self' data: gap: ssl .gstatic.com 'unsafe-eval'. Обратите внимание, что «connect-src» не был задан явно, поэтому «default-src» используется как запасной вариант. - person Stephen; 31.03.2016
comment
Спасибо за ответ, я проверил как на Android, так и на iPhone, он работает, но снова происходит сбой, когда я добавляю политику безопасности контента в метатег. - person Stephen; 31.03.2016
comment
Вам нужно добавить 'api.backand.com/1/objects/player/'; в сам тег безопасности содержимого. По умолчанию это соединение будет отклонено. - person Linda Z; 22.07.2016