Angular $ http POST将参数附加到URL

时间:2014-03-31 08:47:26

标签: angularjs

我是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) {         
});

3 个答案:

答案 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){})