任何人都可以帮我找出为什么这段代码工作正常:
$.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错误的请求。
答案 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