Javascript 脚本1007:预期为';]';将字符串转换为数组时eval表达式出错

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");

我一直在练习ajax,我遇到了以下问题,javascipt在eval表达式中失败。我使用的是IE9浏览器。它给出了错误脚本1007: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>

函数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']