SyntaxError: Unexpected token o at Object.parse (native) AngularJS

痴心易碎 提交于 2019-12-18 12:46:10

问题


Question from AngularJS noob.

I am trying to use an asmx web service to display grid. I tested the web service and it correctly outputs the JSON data. Here is my controller

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

For some reason, SO is not allowing me to paste the html but it basically has a ng-controller directive and ng-repeat to loop through the JSON data.

When I run this web app, I get the error

SyntaxError: Unexpected token o at Object.parse (native) and it points to following line

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

I tried checking the value of myjson using alert and it displays [object Object], [object Object], ...

Is there anything I am missing here


回答1:


I think data returned is already in JSON, no need of JSON.parse(), unless it in string format.

$scope.products= data;



回答2:


Why you using JSON.parse in two times?

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

You have already parse the data object,So then why you parsing another one time?

also i think your data is return Json result, so you don't need to parse the object

just use this

$scope.products = data;



回答3:


Your variable myjson is already a valid JavaScript Object. You do not have to use JSON.parse on it.




回答4:


Simple solution, just use an absolute url:

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

Instead of using var url = 'app/pricefilessetup/grid.asmx/getGridJson'; I have checked.




回答5:


In my case it was string literal being passed in as parameter to JSON.parse().

For Example JSON.parse('asdf') would throw an error Uncaught SyntaxError: Unexpected token a.

With specific case, in Single page angular application, the access token was being passed to the JSON.parse() and clearing the cookies in browser solved the problem for me.



来源:https://stackoverflow.com/questions/29763557/syntaxerror-unexpected-token-o-at-object-parse-native-angularjs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!