$ http.post奇怪的行为

时间:2017-02-20 09:59:50

标签: javascript angularjs

我有一个用于发布到Rest API引擎的组件。 该组件如下所示:

(function(angular) {
    'use strict';
    angular.module('ComponentRelease', ['ServiceRelease'])
        .component('createRelease', {
            templateUrl: 'components/release/createRelease.html',
            controller: CreateRelease,
            controllerAs: 'clCtrl',
        })

    function CreateRelease($http, getReleaseManagers, insertRelease) {
        var ctrl = this;

        this.$onInit = function() {
            getReleaseManagers.promise($http).then(function(response) {
                ctrl.managers = response.data.releasemanager;
            });

            //the save button
            ctrl.save = function() {
                var release = { "rName": ctrl.r_name, "releaseDate": ctrl.r_date, "releaseSharepoint": ctrl.r_sharepoint, "gManager": ctrl.gname, "pManager": ctrl.pname };

                $http.post('http://localhost:8080/post', release).then(function(response) {
                    console.log("Save in database");
                }, function(e) {
                    console.log(e);

                });
            };
        };
    };
})(window.angular);

如果在控制台日志中保存正常,我看到未定义如果我有错误显示错误消息。也许我不明白是正确的,但如果帖子还可以,我应该看到消息保存在数据库中。 请你帮我理解为什么会出现这种情况? 我正在使用angularjs 1.6

提前感谢您的帮助, 欧根

1 个答案:

答案 0 :(得分:0)

在角色帖子中,您还应该在服务器配置中发送标题内容类型,以正确解析数据类型(application / json)。

(function(angular) {
  'use strict';
  angular.module('ComponentRelease', ['ServiceRelease'])
    .component('createRelease', {
      templateUrl: 'components/release/createRelease.html',
      controller: CreateRelease,
      controllerAs: 'clCtrl',
    })

  function CreateRelease($http, getReleaseManagers, insertRelease) {
    var ctrl = this;

    this.$onInit = function() {
      getReleaseManagers.promise($http).then(function(response) {
        ctrl.managers = response.data.releasemanager;
      });

      //the save button
      ctrl.save = function() {
        var release = {
          "rName": ctrl.r_name,
          "releaseDate": ctrl.r_date,
          "releaseSharepoint": ctrl.r_sharepoint,
          "gManager": ctrl.gname,
          "pManager": ctrl.pname
        };

        var config = {
          headers: {
            'Content-Type': 'application/json'
          }
        }

        $http.post('http://localhost:8080/post', release, config).then(function(response) {
          console.log("Save in database");
        }, function(e) {
          console.log(e);

        });
      };
    };
  };
})(window.angular);

相关问题