比如,如下的代码:
function handle_success(response){
var json = eval(response); // response = "{'foo' : 'bar'}";
}
浏览器会报,invalid label错, 这是因为, eval会尝试将你的response解释为一个label, 当你在脚本中直接写:
<script>
{'foo' : 'bar'};
</script>
会报错的原理是一样的.
解决办法有俩个:
var json = eval('(' + response + ')'); // response = "{'foo' : 'bar'}";
或者
eval('var json = ' + response); // response = "{'foo' : 'bar'}";
//json is available now