SyntaxError: Unexpected token o at Object.parse (native) AngularJS
SyntaxError: Unexpected token o at Object.parse (native) AngularJS
来自 AngularJS 菜鸟的问题。
我正在尝试使用 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 但它基本上有一个 ng-controller 指令和 ng-repeat 循环遍历 JSON 数据。
当我 运行 这个网络应用程序时,我收到错误
语法错误:意外的标记 o
在 Object.parse(本地)
它指向以下行
$scope.questions = JSON.parse(myjson);
我尝试使用警报检查 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);
你已经解析了数据对象,那为什么还要解析一次?
另外我认为你的数据是 return Json 结果,所以你不需要解析对象
就用这个
$scope.products = data;
简单的解决方案,只需使用绝对 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
。
在特定情况下,在单页 angular 应用程序中,访问令牌被传递到 JSON.parse()
并且清除浏览器中的 cookie 解决了我的问题。
来自 AngularJS 菜鸟的问题。
我正在尝试使用 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 但它基本上有一个 ng-controller 指令和 ng-repeat 循环遍历 JSON 数据。
当我 运行 这个网络应用程序时,我收到错误
语法错误:意外的标记 o 在 Object.parse(本地) 它指向以下行
$scope.questions = JSON.parse(myjson);
我尝试使用警报检查 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);
你已经解析了数据对象,那为什么还要解析一次?
另外我认为你的数据是 return Json 结果,所以你不需要解析对象
就用这个
$scope.products = data;
简单的解决方案,只需使用绝对 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
。
在特定情况下,在单页 angular 应用程序中,访问令牌被传递到 JSON.parse()
并且清除浏览器中的 cookie 解决了我的问题。