POST使用JQuery而不是Angularjs

时间:2015-08-16 03:54:30

标签: jquery angularjs post http-post bad-request

任何人都可以帮我找出为什么这段代码工作正常:

       $.ajax({
                type: "POST",
                url: scope.serviceBase + "/api/Property/PostAsync",
                contentType: "application/x-www-form-urlencoded",
                processData: false,
                data: data,
                success: function (response) {
                    alert(response);
                },
                error: function (response) {
                    alert(response);
                }
            });

虽然使用Angularjs完全相同但失败了:

      $http({
                method: "POST",
                url: scope.serviceBase + 'api/Property/PostAsync',
                headers: {
                    'processData':false,
                    'Content-Type': "application/x-www-form-urlencoded"
                },
                data: data
            }).success(function (response) {
                alert(response);
            }).error(function (response) {
                alert(response);
            });

仅供参考,我使用AngularJs格式得到的错误是一个400错误的请求。

2 个答案:

答案 0 :(得分:2)

首先,processData不是标题,它在Angular中尚不存在,因为它存在于jQuery中。它具有transformRequest的{​​{1}}属性,它接受将在发送请求之前在data属性上执行的函数数组。为了告诉Angular不要触摸您的数据,您只需将该配置设置为空数组即可。所以在你的情况下,它应该像

$http

答案 1 :(得分:0)

尝试:

$http.post(scope.serviceBase + 'api/Property/PostAsync', data).success(function(response) {
    alert(response);
})
.error(function(response) {
    alert(response);
})

在我看来,我认为发布请求在语法上与jQuery略有不同。上面的代码是我用于Angular的代码。有关更多配置选项,请参阅this