2015-09-30 3 views
0

Я разрабатываю мобильное приложение на Кордове. Основной код взаимодействует с локальным сервером через HTTP GET, например:Кордова: HTTP GET не работает в Android

$.get("http://192.168.2.6:8080/getStatus.sha", 
     {}, 
     function(data) { 
      alert ("checkIpAddress() success! Status: " + data.status); 
     }) 
     .fail(function() { 
      alert ("checkIpAddress() failed to get url \'" + url + "\'."); 
     }); 

Когда я запускаю этот код на Mozilla Firefox, я получаю STAUS сервера (и больше данных).

Но когда я запускаю программу Кордовы на устройстве Android, я получаю сообщение «checkIpAddress() failed».

Локальный сервер поддерживает CORS. Проект config.xml проекта Crodova имеет следующие настройки:

<access origin="*" /> 
<allow-intent href="http://*/*" /> 

Любые предложения по исправлению ошибки? Благодаря!

+0

На этом же Wi-Fi? – MegaAppBear

+0

Является ли устройство в той же сети? Есть ли у локального сервера статически назначенный IP-адрес? – mkorcha

+0

Да, на том же WiFi. – NaBUru38

ответ

2

Если вы используете Cordova 5, и устройство и сервер могут видеть друг друга (в той же сети Wi-Fi), вероятно, вам придется включить это с политикой безопасности содержимого. См Cordova Whitelist Plugin. Вы хотите, чтобы рассмотреть возможность добавления мета-тег в

Пример конфигурации будет выглядеть следующим образом:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

В зависимости от того, что еще ваше приложение делает или не делает вам не нужны все другие варианты в приведенном выше , хотя некоторые Ajax и шаблоны шаблонов будут. Вышеупомянутое работает для приложения Cordova 5 с использованием JQuery и Handlebars.

+0

Хорошо, я добавил тег Content-Security-Policy в main.html и поместил соответствующие звездочки. Благодаря! – NaBUru38

+0

Если это работает для вас, пожалуйста, продолжайте и примите ответ или сообщите нам, если есть проблемы. Благодарю. –

+0

«Спасибо за отзыв! Когда вы заработаете репутацию 15 репутации, ваши голоса появятся». Извините, я не могу проголосовать за ваш ответ. – NaBUru38

Смежные вопросы