我在网上读到,意外的token u问题可能来自于使用JSON.parse()。在我的iPhone 5上没有问题,但在我的Nexus7上我得到了以下错误序列:
我意识到这是一个复制品,但我不确定如何解决我的特定问题。下面是我实现JSON.parse()的地方
$scope.fav = [];
if ($scope.fav !== 'undefined') {
$scope.fav = JSON.parse(localStorage["fav"]);
}
发布于 2014-04-22 22:16:24
根据您更新的问题,if
条件没有意义,因为您在前面将$scope.fav
设置为[]
,因此它永远不可能为"undefined"
。
最有可能的情况是,您的测试是这样的:
if (typeof localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
由于我不知道是否存在localStorage["fav"]
可能包含字符串"undefined"
的情况,因此您可能也需要为此进行测试。
if (typeof localStorage["fav"] !== "undefined"
&& localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
发布于 2014-04-22 22:15:51
避免错误的一种方法(没有真正修复它,但至少不会崩溃):
$scope.fav = JSON.parse(localStorage["fav"] || '[]');
因为localStorage["fav"]
是undefined
,所以你会得到这个错误。
试试这个,你就会自己明白了:
var a = undefined;
JSON.parse(a);
发布于 2014-04-22 22:16:00
Unexpected token: u
几乎总是源于试图解析一个为undefined
的值。
你可以像这样防止它:
if (localStorage['fav']) {
$scope.fav = JSON.parse(localStorage['fav'];
}
https://stackoverflow.com/questions/23221642
复制相似问题