sourcecode

Angular $http POST에서 데이터 배열 전달

codebag 2023. 10. 15. 17:17
반응형

Angular $http POST에서 데이터 배열 전달

Angular 애플리케이션에서 a로 객체 배열을 전달해야 합니다.Nancy 프레임워크가 적용된 넷 웹 서비스.

나는 이것을 시도했습니다.

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개의 내부 서버 오류가 발생하였습니다.
왜 안 되는지 모르겠어요.저는 웹 서비스 전문가는 아니지만 직렬화 문제라고 생각합니다.

누가 도와줄 수 있습니까?

이 게시물에 따르면, 당신 말이 맞아요, 이건 연쇄화에 관한 거예요.Angular는 데이터를 자동으로 직렬화하는 것이 아니라 데이터를 전송하기 전에 파싱해야 합니다.

...

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

jQuery를 사용하지 않으면 직접 롤을 해야 합니다.$.parse. 여기에 토막글이 있거나 jQuery 구현을 적용할 수 있습니다.

angular.toJson(data)

대신 일을 해야 함.

$.param(data)

포비즘이 맞습니다. 각도를 사용할 수 있습니다.Json(데이터)에게.대신이 아니라 $.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");
    });
}

}

$httpParamSerializer 또는 $httpParamSerializer를 사용할 수 있습니다.제이큐라이크

$http(
    url: 'myURL',
    method: "POST",
    data: $httpParamSerializer(data),
)

언급URL : https://stackoverflow.com/questions/16275292/pass-array-of-data-from-angular-http-post

반응형