AngularJS不会从Ionic android应用程序发送POST请求

时间:2015-08-05 17:47:55

标签: android angularjs ionic-framework ionic

我正在使用Ionic框架中的第一个Android应用程序。我的应用程序应该与AngularJS的REST接口进行通信。当我在我的电脑上的浏览器中测试应用程序时,一切正常,但是当我从虚拟或真实的Android设备运行它作为Android应用程序时,POST请求根本不起作用。 GET请求完美运行。我不知道为什么会这样,所以我感谢任何帮助!

部分代码:

    $http({
        url: address,
        method: "POST",
        data: jsondata,
        transformRequest: false,
        headers: { 'Content-Type': undefined }
      })
      .success(function (data) {
         $scope.errormsg = "success";
         reloadComments();
      })
      .error(function (data) {
         $scope.errormsg = data;
      });

2 个答案:

答案 0 :(得分:1)

如果您使用的是较新版本的Cordova(或最新的Ionic CLI)来开发您的应用,则当您的应用尝试发出网络请求时,您可能会遇到http 404错误。

使用Cordova白名单插件可以快速解决这个问题!要安装它,只需在项目的目录中运行以下命令:

离子插件添加https://github.com/apache/cordova-plugin-whitelist.git

请参阅此链接了解更多详情: http://docs.ionic.io/docs/cordova-whitelist

答案 1 :(得分:0)

您必须转换对象中的所有参数,然后您必须调用Web服务,如下例所示。

$scope.submitForm = function($valid)
{
    myobject = {'email' : $scope.user.email, 'pass' : $scope.user.pass};
    Object.toparams = function ObjecttoParams(obj)
    {
        var p =[];
        for (var key in obj)
        {
            p.push(key + '=' + encodeURIComponent(obj[key]));
        }
        return p.join('&');
    };

    $http({
        url: WSURL + '/login',
        method: "POST",
        data: Object.toparams(myobject),
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function (data, status, headers, config)
    {

    }).error(function (data, status, headers, config) 
    {

    });
}

我希望对你有所帮助