with example javascript json angularjs angularjs-http

javascript - example - SyntaxError: token inesperado o en Object.parse(native) AngularJS



http post angular 4 (5)

¿Por qué usas JSON.parse en dos veces?

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

Ya has analizado el objeto de datos, entonces, ¿por qué analizas otra vez?

También creo que sus datos son el resultado json devuelto, por lo que no es necesario analizar el objeto

solo usa esto

$scope.products = data;

Pregunta de AngularJS noob.

Estoy tratando de usar un servicio web de asmx para mostrar la grilla. Probé el servicio web y muestra correctamente los datos JSON. Aquí está mi controlador

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

Por alguna razón, SO no me permite pegar el html, pero básicamente tiene una directiva ng-controller y ng-repeat para recorrer en bucle los datos JSON.

Cuando ejecuto esta aplicación web, me sale el error.

SyntaxError: token inesperado o en Object.parse (nativo) y apunta a la siguiente línea

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

Intenté verificar el valor de myjson usando alerta y muestra [objeto Objeto], [objeto Objeto], ...

¿Hay algo que me falta aquí?


Creo que los datos devueltos ya están en JSON, no es necesario JSON.parse() , a menos que esté en formato de cadena.

$scope.products= data;


En mi caso, se pasó una cadena literal como parámetro a JSON.parse() .

Por ejemplo JSON.parse(''asdf'') arrojaría un error Uncaught SyntaxError: Unexpected token a .

En el caso específico, en la aplicación angular de una sola página, el token de acceso se pasaba a JSON.parse() y el borrado de las cookies en el navegador solucionó el problema.


Solución simple, solo usa una url absoluta:

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

En lugar de usar var url = ''app/pricefilessetup/grid.asmx/getGridJson''; He comprobado.


Tu variable myjson ya es un objeto JavaScript válido. No tienes que usar JSON.parse en él.