programing

구문 오류:Object.parse(네이티브) Angular에 예기치 않은 토큰이 있습니다.JS

cafebook 2023. 3. 4. 15:10
반응형

구문 오류:Object.parse(네이티브) Angular에 예기치 않은 토큰이 있습니다.JS

각도로부터의 질문JS눕.

asmx 웹 서비스를 사용하여 그리드를 표시하려고 합니다.웹 서비스를 테스트해보니 JSON 데이터가 올바르게 출력됩니다.여기 제 컨트롤러가 있습니다.

app.controller('SetupController', ['$scope', '$http', function ($scope, $http) {

    var url = 'app/pricefilessetup/grid.asmx/getGridJson';

    $http.get(url).success(function (data) {
        var myjson = JSON.parse(data);
        $scope.products= JSON.parse(myjson);
    });
}]);

어떤 이유에서인지 SO는 html을 붙여넣는 것을 허용하지 않지만 기본적으로 JSON 데이터를 루프하는 ng-controller 디렉티브와 ng-repeat이 있습니다.

이 웹 앱을 실행하면 오류가 발생합니다.

구문 오류:Object.parse(네이티브)에 예기치 않은 토큰이 있으며 다음 행을 가리킵니다.

  $scope.questions = JSON.parse(myjson);

경보를 사용하여 myjson 값을 확인해보니 [Object], [Object Object], ...라고 표시됩니다.

제가 여기서 놓치고 있는 게 있나요?

반환된 데이터는 이미 JSON에 있는 것으로 알고 있습니다.JSON.parse()스트링 형식이 아닌 한.

$scope.products= data;

사용하는 이유JSON.parse두 번에 걸쳐서?

 var myjson = JSON.parse(data);
  $scope.products = JSON.parse(myjson);

데이터 오브젝트는 이미 파싱했는데 왜 다시 파싱하는 거죠?

또한 당신의 데이터는 Json 결과를 반환한다고 생각하기 때문에 오브젝트를 해석할 필요가 없습니다.

이것만 써라

$scope.products = data;

변수myjson는 이미 유효한 JavaScript 객체입니다.JSON.parse를 사용할 필요가 없습니다.

간단한 해결 방법 절대 URL을 사용합니다.

var url = 'http://demo/app/pricefilessetup/grid.asmx/getGridJson';

사용하는 대신var url = 'app/pricefilessetup/grid.asmx/getGridJson';확인했습니다.

제 경우 스트링 리터럴이 파라미터로 전달되었습니다.JSON.parse().

예를들면JSON.parse('asdf')에러를 던질 것이다.Uncaught SyntaxError: Unexpected token a.

특정 케이스에서는 Single page angular 어플리케이션에서는 액세스토큰이JSON.parse()브라우저에서 쿠키를 지우고 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/29763557/syntaxerror-unexpected-token-o-at-object-parse-native-angularjs

반응형