利用eval()处理返回的json字符串报了一个Uncaught SyntaxError: Unexpected token )
at XMLHttpRequest.xhr.onreadystatechange的错误,发现是因为返回的数据如果为空的话,eval()函数会报错造成的
处理为法,对返回的结果进行判断
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="template.js"></script>
</head>
<body>
<script type="text/javascript">
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else{
xhr = new ActiveXObject("MiCrosoft.XMLHTTP");
}
xhr.open("get","./citycode.php?cityName=北京");
xhr.send(null);
var obj = null;
var cityCodeData = null;
xhr.onreadystatechange = function(){
if (xhr.readyState = 4) {
if (xhr.status = 200) {
cityCodeData = xhr.responseText;
if (cityCodeData) { //返回值可能为空,就会报错
obj = eval('(' + cityCodeData + ')');
console.log(obj);
}
}
}
}
</script>
</body>
</html>