Cordova Angular Get to Web Api Connection Refused

J'utilise Visual Studio 2013 Update 4 et j'ai une configuration de projet web api pour recevoir des demandes get qui renvoient un tableau. Pour l'application client, j'ai configuré cordova et émule une application angulaire Android en utilisant ng-resource pour appeler le Web api get. Chaque fois que j'appelle le GET, j'ai une erreur de ripple.js qui indique que la connexion a été refusée. Je reçois la connexion refusée même si j'essaie avec un véritable périphérique Android aussi. Voici l'erreur lors de l'utilisation de l'émulateur ondulé

OPTIONS http://****:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rur…Fget%3D%257B%2522method%2522%3A%2522GET%2522%2C%2522array%2522%3Atrue%257D net::ERR_CONNECTION_REFUSED

J'étais sûr d'activer cors sur le serveur web api 2 puisque les projets coriña et web api sont des numéros de port différents sur le même hôte local. J'ai prouvé non seulement la fonctionnalité cors mais aussi le code en créant une réplique exacte de l'application cordova angular avec une seule page Web angulaire. J'ai également essayé avec le facteur et les deux obtiennent les réponses de json correctement. Ce n'est que l'application Android cordova qui me donne la connexion refusée. Toute aide sera grandement appréciée!

Voici à quoi ressemble l'angulaire

 app.factory('mrMaintService', function ($resource) { return $resource('http://localhost:15528/api/requests', { get: { method: 'GET', array: true } }); }); 

Cela montre que je permets tous les domaines sur le projet Web api:

  <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> 

La solution était de désactiver les proxies de domaine transversal à partir de la liste déroulante dans l'émulateur. Erreur facile à faire si vous n'êtes pas familier avec l'émulateur ondulé.

La réponse en ce qui concerne les problèmes liés à l'accès à http://localhost (qui est identique à 127.0.0.1 ) peut être trouvée ici: http://developer.android.com/tools/devices/emulator.html – qui dit :

"Notez également que l'adresse 127.0.0.1 sur votre machine de développement correspond à l'interface de bouclage du émulateur. Si vous souhaitez accéder aux services exécutés sur l'interface de bouclage de votre machine de développement (aka 127.0.0.1 sur votre machine), vous devez utiliser l'adresse spéciale 10.0.2.2 à la place. "

Donc, au lieu d'utiliser http://localhost utilisez http://10.0.2.2 , puis ajoutez n'importe quel port que vous utilisez. Exemple: http://localhost:8001 peut être accessible à http://10.0.2.2:8001