axv*_*xvo 22 rest post http angularjs
我需要将一个对象数组从我的Angular应用程序传递给一个带有Nancy框架的.Net Web服务.
我试过这个:
function TestCtrl($scope, $http){
$scope.postTest = function(){
var data = [obj1, obj2, obj3];
$http({
url: 'myURL',
method: "POST",
data: data,
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).success(function(data){
alert("done");
});
}
}
Run Code Online (Sandbox Code Playgroud)
但服务器发送500内部服务器错误.
我不知道为什么它不起作用.我不是专家的网络服务专家,但我认为这是一个序列化问题.
有人能帮我吗?
Cai*_*nha 34
根据这篇文章,你是对的,这是关于序列化.Angular不会为您自动序列化数据,您需要在发送数据之前解析数据:
...
$http({
url: 'myURL',
method: "POST",
data: $.param(data),
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
})...
Run Code Online (Sandbox Code Playgroud)
如果你不使用jQuery,你需要自己动手$.parse
.这里有一个片段或者您可以调整jQuery实现.
fau*_*ism 20
angular.toJson(data)
Run Code Online (Sandbox Code Playgroud)
应该代替
$.param(data)
Run Code Online (Sandbox Code Playgroud)
fauverism是对的,你可以使用angular.toJson(数据).不是,而是在$ .param之前.
function TestCtrl($scope, $http){
$scope.postTest = function(){
var data = [obj1, obj2, obj3];
var jsonData=angular.toJson(data);
var objectToSerialize={'object':jsonData};
$http({
url: 'myURL',
method: "POST",
data: $.param(objectToSerialize),
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).success(function(data){
alert("done");
});
}
Run Code Online (Sandbox Code Playgroud)
}
归档时间: |
|
查看次数: |
83719 次 |
最近记录: |