Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SyntaxError:Object.parse(本机)AngularJS处出现意外标记o_Javascript_Json_Angularjs_Angularjs Http - Fatal编程技术网

Javascript SyntaxError:Object.parse(本机)AngularJS处出现意外标记o

Javascript SyntaxError:Object.parse(本机)AngularJS处出现意外标记o,javascript,json,angularjs,angularjs-http,Javascript,Json,Angularjs,Angularjs Http,AngularJS noob的问题 我正在尝试使用ASMXWeb服务来显示网格。我测试了web服务,它正确地输出了JSON数据。 这是我的控制器 app.controller('SetupController', ['$scope', '$http', function ($scope, $http) { var url = 'app/pricefilessetup/grid.asmx/getGridJson'; $http.get(url).success(function

AngularJS noob的问题

我正在尝试使用ASMXWeb服务来显示网格。我测试了web服务,它正确地输出了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,但它基本上有一个ng controller指令和ng repeat来循环JSON数据

当我运行这个web应用程序时,我得到了错误信息

SyntaxError:意外的令牌o at Object.parse(本机) 它指向下面这条线

  $scope.questions = JSON.parse(myjson);
我尝试使用alert检查myjson的值,它显示[object object]、[object object]、


您的变量
myjson
已经是一个有效的JavaScript对象。您不必对其使用JSON.parse。

我认为返回的数据已经是JSON格式的,不需要
JSON.parse()
,除非它是字符串格式的

$scope.products= data;

为什么要两次使用
JSON.parse

 var myjson = JSON.parse(data);
  $scope.products = JSON.parse(myjson);
您已经解析了数据对象,那么为什么还要再解析一次呢

另外,我认为您的数据是返回Json结果的,因此您不需要解析对象

就用这个

$scope.products = data;

简单的解决方案,只需使用绝对url:

var url = 'http://demo/app/pricefilessetup/grid.asmx/getGridJson';
而不是使用
var url='app/pricefilesetup/grid.asmx/getGridJson'

我已经检查过了。

在我的例子中,是字符串文字作为参数传递给了
JSON.parse()

例如,
JSON.parse('asdf')
将抛出一个错误
Uncaught SyntaxError:Unexpected token a


在特定情况下,在单页angular应用程序中,访问令牌被传递到
JSON.parse()
,清除浏览器中的cookie为我解决了问题。

我怀疑您是否需要使用
JSON.parse
。Angular希望响应默认为JSON,并为您反序列化它。此外,
alert
是一个糟糕的调试工具。改用
console.log
(或Angular的服务)