我是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>
答案 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
请求,而不是POST
而content
似乎是一个字符串,所以你的第二个请求应该是
$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分配适当的值。