SCRIPT1007:将字符串转换为数组时eval表达式的预期']'错误

时间:2015-07-01 14:18:58

标签: javascript java

我一直在练习ajax,我有以下问题,javascipt在eval表达式失败。我正在使用IE9浏览器。它给出了错误SCRIPT1007:期望']'在eval表达式 以下是javascript函数,您还可以找到我用箭头标记的问题。

<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>

2 个答案:

答案 0 :(得分:0)

['raj,'jay'] 

你似乎在raj之后错过了一个收盘报价。

答案 1 :(得分:0)

如果此Array字符串由用户输入或其他不受信任的来源提供,则在任何情况下都应避免使用eval()! (看看会发生什么)

要将数组存储在字符串中,您应该查看serialize并反序列化。