NativeScript连接Android模拟器本地主机(localhost)失败求助
解决NativeScript连接Android模拟器本地主机的URL格式问题
嘿,这个问题我之前也碰到过!你看报错信息里的no protocol就已经把原因说得明明白白啦——你的请求URL缺少了HTTP协议前缀!Android系统的URL解析器非常严格,必须明确指定http://或者https://,不然它根本不知道该用什么协议去发起请求,自然就抛出格式错误了。
具体修复步骤
只需要给你的请求地址补上http://前缀就行,其他部分不用改(毕竟Android模拟器里用10.0.2.2映射宿主机的localhost是完全正确的):
this.http.get("http://10.0.2.2/api/categories") .map(function (result) { return result.json(); }) .subscribe(function (result) { console.log(result); });
额外检查点(防止还有其他坑)
- 先在你的宿主机浏览器里访问
http://localhost/api/categories,确认Node.js服务器确实能正常返回数据,排除服务器本身的问题 - 如果改完URL还是连不上,检查下宿主机的防火墙有没有拦截80端口的入站请求
- 要是以后用到iOS模拟器,直接用
localhost或者127.0.0.1就行,不用10.0.2.2这个Android专属的映射地址
内容的提问来源于stack exchange,提问作者Knight
相关产品推荐
相关产品推荐

