如何在$ http中使用POST将对象发送到服务器?

时间:2013-09-17 09:03:14

标签: angularjs

我使用以下内容:

    var url = '/api/Test/Mark';
        $http('POST', url, $scope.content.answers)
            .success(function (data, status, headers, config) {
                $scope.content = data.text;
            })
            .error(function (data, status, headers, config) {
                alert("Error: No data returned from " + url);
            });

当我尝试调用它时,这会给我一个错误:

TypeError: Cannot use 'in' operator to search for '3' in POST
    at isArrayLike (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:183:81)
    at forEach (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:225:16)
    at http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:329:7
    at forEach (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:227:18)
    at extend (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:327:3)
    at $http (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:6256:7)
    at Scope.$scope.markQuestion (http://127.0.0.1:81/Content/app/questions/controllers/content.js:39:13)
    at elementFns (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:8564:19)
    at http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:15511:13
    at Scope.$get.Scope.$eval (http://127.0.0.1:81/Scripts/angular-v1.2.0-rc.2.js:10034:28)

有人可以就我可能做错的事给我建议吗?注意$ scope.content.answers是一个数据数组。

1 个答案:

答案 0 :(得分:2)

你在使用$ http

做错了

试试这个

  var url = '/api/Test/Mark';

         $http({
                method: 'POST',
                url: url
                data: $scope.content.answers // this should be a object e.g { a : 'one', b: 'Two' }
            })
            .success(function (data, status, headers, config) {
            $scope.content = data.text;
        })
        .error(function (data, status, headers, config) {
            alert("Error: No data returned from " + url);
        });