javascript - ionic : http post request works in browser but not in mobile

标签 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);
     });
}

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

ionic serve

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

ionic run -lc android

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

enter image description here

这段代码曾经可以工作,但在某个时间点它停止工作了。我记得做的唯一可能影响此行为的事情是安装较新版本的 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/

相关文章:

javascript - Electron JS - 深度链接 - 如何使用深度链接的示例

JavaScript 字符串中的 JavaScript 脚本标记

jquery - Phonegap ajax GET 返回内部服务器错误

angularjs 从 firebase 的链接播放音频

javascript - Angularjs $scope 变量未在 View 中更新

android - ionic 键盘延迟显示 - 隐藏,在一个大的 HTML 文档中

jquery-mobile - JQuery - 使用 navigator.notification.alert

javascript - 在 Elixir 或 jQuery 中循环输入

Javascript 表格的分页

angularjs - 如何在 Angular 2 模板内显示获取的 html?