【问题标题】:Loading Rest data in Android Cordova application using AngularJs使用 AngularJs 在 Android Cordova 应用程序中加载 Rest 数据
【发布时间】:2015-07-03 09:03:28
【问题描述】:

我有一个由 Cordova 创建的 Android 项目,它使用本地主机上的 spring Rest 项目提供的 REST 服务 使用 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\platforms\android\assets\www\index.html

这告诉我正确的 结果。

但是当我在模拟器中运行应用程序时,它只给我空视图(没有数据休息)。 我将资源的 IP 地址更改为 10.0.2.2 和我机器的 IP 地址,但仍然无法正常工作!

我猜我的模拟器 genymotion 设备和本地主机之间没有通信!

请问有什么建议吗?

谢谢。

【问题讨论】:

    标签: android angularjs cordova rest localhost


    【解决方案1】:

    Genymotion 正在 VirtualBox 中运行。您必须更改网络配置。如http://bbowden.tumblr.com/post/58650831283/accessing-a-localhost-server-from-the-genymotion 所述:

    网络的名称是 vboxnet0,如果您在主机上运行“ifconfig vboxnet0”(如果运行 Windows,则为“ipconfig vboxnet0”),您应该会收到 vboxnet0 网络上主机的 IP 地址。默认 IP 很可能是 192.168.56.1。这是从 Genymotion 模拟器访问主机时使用的 IP 地址。

    【讨论】:

    • 非常感谢@devz。另外,我找到了另一种解决问题的方法,将ip地址更改为10.0.3.2,这是Genymotion模拟器的访问地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多