为什么我的POST返回[object Object]

时间:2016-10-05 04:04:37

标签: javascript angularjs

我是Angular js的新手,我不知道我的POST是否有效。它返回一个[object Object]!这有什么错误?我的意思是,如果POST正在运行,表单有问题吗?

//Activity controller
.controller('ActivityCtrl', function($scope, $rootScope, $state, $ionicLoading, $ionicScrollDelegate, PostService, $http, AuthService) {
    var user = AuthService.getUser();
    $http.get("http://hannation.me/api/buddypressread/activity_get_activities_grouped/?userid=" + user.data.id)
    .success(function(data) {
      $scope.activities = data.activities;
    });



  $scope.addActivity = function(){    
    //    
    var dataObj = {
        new_activity : $scope.new_activity
    };  
    $http.post('http://hannation.me/api/userplus/activities_post_update/?key=57f211a0354d7&cookie=' 
      + user.cookie + '&content=' + dataObj).success(function(data, status, headers, config) {
      $scope.message = data;
    });

    $scope.new_activity='';
  };
})
 <form  class="row">
      <div class="col col-80 content col-center">
        <input class="new-comment-message" type="text" placeholder="Leave a comment..." ng-model="new_activity"
         name="new_activity"></input>
      </div>
      <div class="col col-20 button-container col-center">
        <button class="button button-clear send" type="submit" ng-click="addActivity()">
          Send
        </button>
      </div>
    </form>

2 个答案:

答案 0 :(得分:1)

首先,主要是因为这真的让我感到烦恼...使用params属性查询参数,不要使用deprecated success方法。使用params可确保您的查询参数经过清理,以便在网址中使用(请参阅encodeURIComponent())。

$http.get('http://hannation.me/api/buddypressread/activity_get_activities_grouped/', {
    params: { userid: user.data.id }
}).then(function(response) {
    $scope.activities = response.data.activities;
});

其次,这个documentation(我认为是正确的)表示您应该使用GET请求,而不是POSTcontent似乎是一个字符串,所以你的第二个请求应该是

$http.get('http://hannation.me/api/userplus/activities_post_update/', {
    params: {
        key: '57f211a0354d7',
        cookie: user.cookie,
        content: $scope.new_activity
    }
}).then(function(response) {
    // not sure about this, the documentation doesn't indicate there's a response
    console.log('response data', response.data);
});

答案 1 :(得分:-1)

答案在你的问题中。您正在签署对象,您应该像这样做

 $http.post('http://hannation.me/api/userplus/activities_post_update/?key=57f211a0354d7&cookie=' 
  + user.cookie + '&content=' + dataObj).success(function(data, status, headers, config) {
  $scope.message = data.message;
});

在这里,我已经分配了一个我从发布请求中获得的值。要知道响应对象中的值是什么,请调试响应对象并为$ scope.message分配适当的值。