![](/img/trans.png)
[英]SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native) (AngularJS)
[英]SyntaxError: Unexpected token o at Object.parse (native) AngularJS
来自AngularJS noob的问题。
我正在尝试使用asmx Web服务来显示网格。 我测试了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:Object.parse(native)上的意外标记o,它指向以下行
$scope.questions = JSON.parse(myjson);
我尝试使用alert检查myjson的值,它显示[object Object],[object Object],...
这里有什么我想念的吗?
我认为返回的数据已经是JSON,不需要JSON.parse()
,除非它是字符串格式。
$scope.products= data;
为什么你两次使用JSON.parse
?
var myjson = JSON.parse(data);
$scope.products = JSON.parse(myjson);
您已经解析了数据对象,那么为什么要解析另一次?
另外我认为你的数据是返回Json结果,所以你不需要解析对象
只是用这个
$scope.products = data;
您的变量myjson
已经是一个有效的JavaScript对象。 您不必在其上使用JSON.parse。
简单的解决方案,只需使用绝对网址:
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
。
在特定情况下,在单页角度应用程序中,访问令牌被传递给JSON.parse()
并清除浏览器中的cookie为我解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.