我需要将对象的数组从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"); }); } }
但是服务器发送500 Internal server error。 我不知道为什么它不起作用。我不是Web服务专家,但是我认为这是一个序列化问题。
有人能帮我吗?
这是关于序列化的。Angular不会自动为您序列化数据,您需要在发送数据之前解析数据:
... $http({ url: 'myURL', method: "POST", data: $.param(data), headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } })...
如果您不使用jQuery,则需要自己滚动$.parse。这里有一个摘要或者您可以改编jQuery实现。
$.parse