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

Javascript API调用在cordova应用程序中不起作用,javascript,cordova,backbone.js,Javascript,Cordova,Backbone.js,我使用apachecordova制作了一个应用程序。我的服务器是在本地运行的node.js和端口3005中编写的。所以我想从cordova调用API,我在客户端使用主干网 我编写了以下代码来进行API调用 makingAPICallForStatus:function(){ var userSessionModel = Backbone.Model.extend({ //Creaating a model for checking user session status

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

我编写了以下代码来进行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/. 这样就不行了。显示此请求没有可用的响应数据

现在我尝试了生产领域,比如

URL路径为:http://xxx.xxxx.com/api/user/status/

这样很好用

为什么localhost不工作,我直接在浏览器中调用相同的url工作正常。但它在科尔多瓦不起作用

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

有什么问题吗?我怎样才能解决这个问题


谢谢。

localhost是127.0.0.1的别名,即使您在同一台计算机上的模拟器上运行,本地主机也不是真实的。您必须始终从设备甚至虚拟设备调用IP地址或域名。这是因为在设备上,localhost指的是设备,而不是它可能运行的机器。

您正在端口3005上运行服务器,但正在端口3004上使用请求?@YoelNunez抱歉,我现在更新了,你能检查一下吗..检查一下这篇文章,我认为它和你所经历的很相似,你在模拟器中运行它吗?如果是这样,请使用计算机的IP而不是localhost。localhost是127.0.0.1的别名,即使您在同一台计算机上的模拟器上运行,本地主机也不是真实的。您必须始终从设备甚至虚拟设备调用IP地址或域名。这是因为在设备上,localhost指的是设备,而不是运行它的机器。