ben*_*ier 18 javascript json token angularjs
我在网上看到,意外的令牌问题可能来自于使用JSON.parse().在我的iPhone 5上没有问题,但在我的Nexus 7上,我得到了一系列错误:
我意识到这是重复的,但我不知道如何解决这个问题.这是我实现JSON.parse()的地方
$scope.fav = [];
if ($scope.fav !== 'undefined') {
$scope.fav = JSON.parse(localStorage["fav"]);
}
Run Code Online (Sandbox Code Playgroud)
t.n*_*ese 20
根据您更新的问题,if条件没有意义,因为您之前设置$scope.fav为[]正确,所以它永远不会"undefined".
您很可能希望以这种方式进行测试:
if (typeof localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
Run Code Online (Sandbox Code Playgroud)
由于我不知道是否存在localStorage["fav"]可能包含字符串的情况,"undefined"您可能还需要对此进行测试.
if (typeof localStorage["fav"] !== "undefined"
&& localStorage["fav"] !== "undefined") {
$scope.fav = JSON.parse(localStorage["fav"]);
}
Run Code Online (Sandbox Code Playgroud)
ave*_*isk 12
避免错误的一种方法(不是真正修复它,但至少不会破坏):
$scope.fav = JSON.parse(localStorage["fav"] || '[]');
Run Code Online (Sandbox Code Playgroud)
你得到的是错误的,因为localStorage["fav"]是undefined.
试试这个,你会自己理解:
var a = undefined;
JSON.parse(a);
Run Code Online (Sandbox Code Playgroud)
Unexpected token: u几乎总是源于试图解析的值undefined。
您可以像这样防止这种情况:
if (localStorage['fav']) {
$scope.fav = JSON.parse(localStorage['fav'];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89379 次 |
| 最近记录: |