ajax获取json后无法解析出数据,为什么呢?

html代码<body><spanid="show_check"></span><br/><spanid="show_flag"></span><br/><script>... html代码
<body>
<span id="show_check"></span><br />
<span id="show_flag"></span><br />

<script>
var xmlhttp;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{

document.getElementById("show_check").innerHTML=xmlhttp.responseText;
var ajax=xmlhttp.responseText;
alert(ajax[0].no1)
}
}
xmlhttp.open("GET","22.php",true);
xmlhttp.send();
</script>
</body>

---------------------------------------------------------------------------------------
22.php代码

<?php

$info = array(array('no1'=>'bsd', 'no2'=>'wuddy', 'no3'=>'xie'));
$userinfo = json_encode($info);

echo $userinfo;
?>
alert不出来json数据怎么回事呢
展开
 我来答
xiangyuecn
2013-11-18 · TA获得超过336个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:302万
展开全部

你传过来的json没有解析,xmlhttp.responseText是字符串,ajax[0]就是“[”字符(数组左括号)string没有no1属性


要把responseText解析为对象才行

//支持IE8以下渣渣
var ajax=eval("("+xmlhttp.responseText+")");
//安全点
var ajax=JSON.parse(xmlhttp.responseText);
拼命杀狼
2013-11-19 · 超过15用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:44.9万
展开全部
这个写法复杂度不说,兼容性就是大问题。
强烈建议使用jquery。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script language="javascript">
$(function(){
$.getJSON(
"22.php",
function(json){
alert(json[0].no1);
}
);
});
</script>
这段代码贴上去保证管用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jennia菊菊
2013-11-19 · TA获得超过632个赞
知道小有建树答主
回答量:710
采纳率:75%
帮助的人:346万
展开全部
先alert(ajax)看看,是否有值,如果有值应该是string类型的,之后通过eval("("+ajax+")");才能转换成json
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式