ionic:http post请求在浏览器中有效但在移动设备中无效

时间:2017-01-12 09:01:47

标签: javascript angularjs cordova ionic-framework http-post

我使用$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);
     });
}

当我使用以下命令在浏览器中测试时,我的代码可以无缝地工作:

  

离子服务

但是当我在手机中启动它时:

  

离子run -lc android

响应数据为空时立即调用错误回调函数:

enter image description here

这段代码曾用于工作但在某个时间点它已停止工作。我记得做的唯一可能影响这种行为的是安装较新版本的android:

  

cordova平台删除android
  cordova平台添加android@5.1.1

我注意到的另一点:我正在将http请求发送到localhost上的Web服务。但是,如果我在远程服务器上托管Web服务代码,http请求将在我的手机上成功运行。

1 个答案:

答案 0 :(得分:2)

当您将代码上传到手机时,localhost将成为您的手机,而不是您的计算机。因此,手机上没有服务器可以侦听,因此会出错。要解决此问题,在尝试使用手机时,请将localhost更改为您计算机的IP,您可以在Windows中键入ipconfig,在Linux中键入ifconfig来学习。写下号码以192.168....10....代替localhost开头。这样它也适用于您的计算机。这也是将它发送到远程服务器时的原因。