ajax中的responseText有关问题

ajax中的responseText问题
求解:当我们使用new XMLHttpRequest().responseText时,出现了使用eval()函数无法执行.代码如下:

<script type="text/javascript">
function fun() {
var request = createXMLHttpRequest();
//准备数据
var url = "${pageContext.request.contextPath}/postServlet";
var method = "POST";
//open方法
request.open(method, url);
//创建参数
var str = "uname=hexiugang&pass=myadmin";
//设置请求头消息
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//启动
request.send(str);
//结果接收后.判断
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status == 200 || request.status == 304) {
/*
*
*
*
*request.responseText中的数据为:["a","b", "c"],使用alert(typeof request.responseText)输出为:string
*/
var arr = eval(request.responseText);//执行
alert(typeof arr);//这里应该是一个object对象,可是依旧为string
}
}
};
}

function createXMLHttpRequest() {
/*
*
*判断兼容问题
*
*/
if(window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject();
} else {
alert("对不起!浏览器不兼容本网站,请下载最新的360浏览器!");
return null;
}

}
</script>
------解决思路----------------------
试试
var arr = eval('('+request.responseText+')');//执行


如果确认是返回["a","b", "c"],eval后应该是数组typeof为object,firefox12和ie8-测试都是object