API调用在cordova应用程序中不起作用

时间:2014-10-07 16:24:29

标签: javascript cordova backbone.js

我使用apache cordova制作了一个应用程序。我的服务器是在本地运行的node.js和端口3005中编写的。所以我想从cordova进行API调用我在客户端使用backbone

我编写了以下代码来进行API调用

makingAPICallForStatus:function(){
    var userSessionModel = Backbone.Model.extend({  //Creaating a model for checking user session status
        url:"http://localhost:3005/api/user/status/",
    });
    var userSessionModelObj=new userSessionModel();
    this.makeApiCall(userSessionModelObj,"",'GET',function(model,response,options){console.log(response);});
},
makeApiCall:function(modelObj,dataObject,requestType,successCallback){
    modelObj.fetch({data:dataObject,
            type:requestType,       
            success:successCallback,        
            error:function(){console.log("error")}
    });
}

如果你观察,我提到的URL路径是:"http://localhost:3005/api/user/status/"。这样它就不起作用了。它显示This request has no response data available

现在我尝试了像

这样的生产域

网址路径为:"http://xxx.xxxx.com/api/user/status/"

这种方式工作正常。

为什么localhost无效,我直接在浏览器中调用相同的网址正常工作。但它在cordova中无效。

注意:我没有修改www/config.xml文件中的任何内容。

问题是什么我该如何解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:0)

localhost127.0.0.1的别名,即使您在同一台计算机上运行模拟器,本地主机也不是真实的。您必须始终从设备(甚至虚拟设备)拨打ipaddress或域名。这是因为设备localhost指的是设备而不是它可能正在运行的设备。