Javascript 脚本1007:预期为';]';将字符串转换为数组时eval表达式出错
我一直在练习ajax,我遇到了以下问题,javascipt在eval表达式中失败。我使用的是IE9浏览器。它给出了错误脚本1007:eval表达式中应为']' 下面是javascript函数,您还可以找到我用箭头标记的问题Javascript 脚本1007:预期为';]';将字符串转换为数组时eval表达式出错,javascript,java,Javascript,Java,我一直在练习ajax,我遇到了以下问题,javascipt在eval表达式中失败。我使用的是IE9浏览器。它给出了错误脚本1007:eval表达式中应为']' 下面是javascript函数,您还可以找到我用箭头标记的问题 <script type="text/javascript"> function callAjax(){ var xhr = new XMLHttpRequest(); xhr.open("GET","ajax");
<script type="text/javascript">
function callAjax(){
var xhr = new XMLHttpRequest();
xhr.open("GET","ajax");
xhr.send(null);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 ){
if(xhr.status==200)
var arrStr = xhr.responseText;
//arrStr holds ['raj,'jay']
***var arr = eval(arrStr);------------->problem area***
var list ="";
for (var i=arr; i<arr.length; i++){
list+=arr[i]+"<br>";
}
document.getElementById("msg").innerHTML=list;
} else if ( xhr.status==404) {
document.getElementById("msg").innerHTML="<h6 style='color: red'>Invalid Path</h6>"
}
}
}
</script>
函数callAjax(){
var xhr=new XMLHttpRequest();
open(“GET”、“ajax”);
xhr.send(空);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
如果(xhr.status==200)
var arrStr=xhr.responseText;
//arrStr持有['raj,'jay']
***var arr=eval(arrStr);---------------->问题区域***
var list=“”;
对于(var i=arr;i
您似乎缺少raj之后的结束引号。如果此数组
字符串由用户输入或其他不受信任的来源提供,则在任何情况下都应避免使用eval()
。(请参阅发生的情况)
要以字符串形式存储数组,您可能需要查看并取消序列化。您应该使用JSON.parse
而不是eval
,这可能会给您提供更好的错误消息。无论哪种方式,这看起来都只是一个打字错误。eval()在任何时候都是同样邪恶的。你的问题区域是你的数组
str,它似乎不是数组
['raj,'jay']