一尘不染

从Angular $ http POST传递数据数组

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");
        });
    }
}

但是服务器发送500 Internal server error。
我不知道为什么它不起作用。我不是Web服务专家,但是我认为这是一个序列化问题。

有人能帮我吗?


阅读 639

收藏
2020-07-04

共1个答案

一尘不染

这是关于序列化的。Angular不会自动为您序列化数据,您需要在发送数据之前解析数据:

...

$http({
  url: 'myURL',
  method: "POST",
  data: $.param(data),
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
  }
})...

如果您不使用jQuery,则需要自己滚动$.parse。这里有一个摘要或者您可以改编jQuery实现

2020-07-04