原生ajax请求json报错

页面效果能正常显示,但是打开控制台看到有报错。

这是报错
clipboard.png

这是代码

function getRooms(pagenum){
    var xmlhttp=null
    if(window.XMLHttpRequest){
        xmlhttp= new XMLHttpRequest()
    }else {
        xmlhttp=new ActiveXObject("Microsof.XMLHTTP")
    }
    
    xmlhttp.onreadystatechange=function(){
        
        var data=JSON.parse(xmlhttp.responseText); 
        
        if(xmlhttp.readyState==4&&xmlhttp.status==200){
            
            var tbody=document.getElementsByTagName("tbody")[0];
            tbody.innerHTML="";
            var list=data.Data;
            var count=data.countpage;
                 
            for(var i=0;i<list.length;i++){
                
                var num = i + (count - 1) * 10 + 1;
                
                var content="<tr id="+list[i].id+">"+
                "<td>"+num+"</td>"+
                "<td class='mrName'>"+list[i].name+"</td>"+
                "<td>"+list[i].state+"</td>"+ 
                "<td>"+list[i].meetcount+"</td>"+ 
                "<td>"+list[i].username+"</td>"+
                "<td>"+list[i].begintime+"</td>"+
                "<td>"+
                    "<button class='deleteInfo'>删除</button>"+
                    "<button class='changeInfo'>修改</button>"+
                "</td>"+
                "</tr>"        
                
                tbody.innerHTML+=content
                        
                
            }
        }
    }
    
    xmlhttp.open("post","/Meet/ListAllMeet.do",true)
    
    xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded")
    
    xmlhttp.send('pagenum='+pagenum)
}
阅读 2.7k
5 个回答

var data=JSON.parse(xmlhttp.responseText);放到下面的if的第一行上

错误是不符合规范预期的JSON格式
打印一下你这段话

var data=JSON.parse(xmlhttp.responseText);

可能问题出在这句话上。
也可能是检查一下后台的返回数据是不是有问题,后者可能性大一点。
检查一下返回的字符串是不是带一些特殊符号:比如/n这种类似的

楼主,你好!使用 JSON.parse() 的时候,建议用 try...catch 捕获下异常,不然会直接出现错误。上面截图的 error 信息通常是因为解析的不是正规的 json 格式。

response里看下返回数据真的是json么

刚开始xmlhttp.responseText 等于 '', JSON.parse('') 是会报错的,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题