我使用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
文件中的任何内容。
问题是什么我该如何解决这个问题。
感谢。
答案 0 :(得分:0)
localhost
是127.0.0.1
的别名,即使您在同一台计算机上运行模拟器,本地主机也不是真实的。您必须始终从设备(甚至虚拟设备)拨打ipaddress或域名。这是因为设备localhost
指的是设备而不是它可能正在运行的设备。