У меня есть проект Android, созданный Кордовой ведьмой, потребляющий услугу REST, предоставляемую из Spring Rest projet на localhost с помощью AngularJs, я пытаюсь получить доступ к ресурсу, используя следующий код:
'use strict';
angular.module('myService', ['ngResource']).
factory('Demande', function ($http, $resource) {
$http.defaults.useXDomain = true;
return $resource('http:// localhost:8080\:8080/springrestprojet/rest/myobject/:id', {}, {
'save': {method:'PUT',
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, PUT',
'Access-Control-Allow-Headers': 'Origin, Content-Type, Accept',
'Access-Control-Request-Headers': 'X-Requested-With, accept, content-type',
'Accept':'application/x-www-form-urlencoded, multipart/form-data',
'Access-Control-Allow-Credentials': 'true'}},
});
});
Я могу открыть файл
C:\Users\User\Mobile\AppClient\платформы\Android\активы\WWW\index.html
и это показывает мне правильный результат.
но когда я запускаю приложение в эмуляторе, которое дает мне только пустые представления (без хранения данных). Я изменил ip-адрес ресурса на 10.0.2.2 и на ip-адрес моей машины, но это все еще не работает!
Я думаю, нет никакой связи между моим устройством эмулятора эмулятора и локальным хостом!
Любое предложение, пожалуйста?
Благодарю.
В VirtualBox работает Genymotion. Вы должны изменить конфигурацию сети. Как указано на http://bbowden.tumblr.com/post/58650831283/accessing-a-localhost-server-from-the-genymotion:
Имя сети - vboxnet0, и если вы запускаете "ifconfig vboxnet0" (или "ipconfig vboxnet0" при запуске Windows) на своем хост-компьютере, вы должны получить IP-адрес своего хоста в сети vboxnet0. По умолчанию IP-адрес 192.168.56.1. Это IP-адрес, который следует использовать при доступе к вашей главной машине из эмулятора Genymotion.