我正在使用 $http.post
在我的应用程序中调用一个简单的身份验证 API。
this.login = function(scope, credentials) {
var url = REST_API.DOMAIN + REST_API.LOGIN;
$http.post(url, $.param(credentials)/* convert from json to query string */, {
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
.success (function(response){
$log.info(response);
})
.error(function(data, status, header, config){
$log.error(data);
});
}
当我使用以下命令在浏览器中测试我的代码时,它可以无缝运行:
ionic serve
但是当我在手机中启动它时:
ionic run -lc android
立即调用错误回调函数,响应数据为空:
这段代码曾经可以工作,但在某个时间点它停止工作了。我记得做的唯一可能影响此行为的事情是安装较新版本的 android:
cordova platform remove android
cordova platform add [email protected]
我注意到的另一点:我正在将 http 请求发送到本地主机上的 Web 服务。但是,如果我在远程服务器上托管 Web 服务代码,http 请求将在我的手机上成功运行。
最佳答案
当您将代码上传到手机时,本地主机将成为您的手机,而不是您的计算机。所以你的手机上没有服务器监听,所以会报错。要解决此问题,请在尝试使用手机时将 localhost 更改为计算机的 IP,您可以通过在 Windows 中输入 ipconfig
和在 Linux 中输入 ifconfig
来了解该 IP。写入以 192.168....
或 10....
开头的号码,而不是 localhost
。这样它也可以在您的计算机上运行。这也是当您将其发送到远程服务器时它起作用的相同原因。
关于javascript - ionic : http post request works in browser but not in mobile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608903/