Javascript SyntaxError:Object.parse(本机)AngularJS处出现意外标记o
AngularJS noob的问题 我正在尝试使用ASMXWeb服务来显示网格。我测试了web服务,它正确地输出了JSON数据。 这是我的控制器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
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的服务)