我是Angular的新手,所以我可能犯了一个基本错误。我在使用$ http服务时遇到了麻烦。我将我的方法声明为POST,但参数会附加到URL,就像我使用GET一样。我的代码如下,有什么想法吗?
$http({
method: 'POST',
url: URL,
params: {
Source: 'Blog',
Header: entry.Header,
Body: entry.Body,
ID: entry.ID,
IsLive: entry.IsLive
}
}).success(function (data, status, headers, config) {
}).error(function (data, status, headers, config) {
});
答案 0 :(得分:2)
可能你没有定义'进入'。将它添加到模型($ scope.entry对象)中并查看示例:
myControllers.factory('sqlFactory', ['$http', function($scope, $http){
var f = {};
f.get = function($scope, $http){
var file = 'php/datasets.php';
$http({
method:'POST',
url: file,
params: {
Source: 'Blog',
Header: $scope.entry.Header,
Body: $scope.entry.Body,
ID: $scope.entry.ID,
IsLive: $scope.entry.IsLive
}
})
.success(function(data, status, headers, config) {
//return record
$scope._rows = data;
}
})
.error(function(data, status, headers, config) {
//return error message
$scope._error = data;
});
};
return f;
}]);
答案 1 :(得分:0)
您可以用另一种方式编写$ http.post方法。
$http.post(URL{Source:'Blog',Header:entry.Header,Body:entry.Body,ID:entry.ID,IsLiv:entry.IsLive})
.success(function (data, status, headers) {
console.log(data)
}).error(function (data, status, headers) {
});
如果您不必在post方法中设置特定内容,则可以用这种方式编写。 我甚至建议你记录数据响应参数。 我不知道你对网络上的http方法有多少经验,所以最后我建议你打开浏览器的web-developer控制台(我更喜欢使用mozilla控制台)并查看网络面板使用此方法发送的参数。我希望这可以是一个完整的解释
答案 2 :(得分:0)
为什么使用“params”对象?这是添加到您的网址的内容。我假设您正在将params对象发布到您的服务器。也许这就是你应该做的事情?
var params = {
Source: 'Blog',
Header: entry.Header,
Body: entry.Body,
ID: entry.ID,
IsLive: entry.IsLive
}
http.post(URL, params)
.success(function(data, status, headers,config){})
.error(function(data, status, headers,config){})