SyntaxError: Unexpected token o at Object.parse (n

2020-02-26 03:14发布

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

5条回答
混吃等死
2楼-- · 2020-02-26 03:31

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楼-- · 2020-02-26 03:36

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.

查看更多
爷的心禁止访问
4楼-- · 2020-02-26 03:42

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

$scope.products= data;
查看更多
家丑人穷心不美
5楼-- · 2020-02-26 03:42

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

查看更多
三岁会撩人
6楼-- · 2020-02-26 03:44

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.

查看更多
登录 后发表回答