使用ajax的时候JSON.parse(this.responseText)总是报错是怎么回事?

weixin_43964855 2020-05-27 05:38:50
代码是这样的,users.json里面是有数据的,但一请求数据就报错
<button id="button">请求所有用户</button>


<br><br>
<h1>所有用户</h1>

<div id="users"></div>
<script>

document.getElementById('button').addEventListener('click',loadUser);
function loadUser(){
var xhr = new XMLHttpRequest();
xhr.open("GET","users.json",true);
xhr.onload = function(){
if(this.status == 200){
//console.log(this.responseText)
var users = JSON.parse(this.responseText);
var output = '';


for(var i in users){
output +='<ul>'+
'<li>'+users[i].id+'</li>'+
'<li>'+users[i].name+'</li>'

+'</ul>';
}

document.getElementById('users').innerHTML=output;
}

}
xhr.send();
}



</script>






下面是报错截图
不知道是什么情况,有没有大佬教教我这个小白
...全文
600 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2020-05-29
  • 打赏
  • 举报
回复
引用 2 楼 weixin_43964855 的回复:
不对,也是爆同样的错,VM52:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttpRequest.xhr.onload (ajax.html:26)提示这样 josn代码是这样的 { "id":1, "name":"李白", }, { "id":2, "name":"杜甫", }, { "id":3, "name":"白居易", }
你josn数据的格式不对,一个josn数据的根部只能有一个{}或[] 你的josn代码应该是
[{
"id":1,
"name":"李白",
},
{
"id":2,
"name":"杜甫",
},
{
"id":3,
"name":"白居易",
}]
weixin_43964855 2020-05-28
  • 打赏
  • 举报
回复
用var users = this.responseText;后打印出来的直接是undefined
sha虫剂 2020-05-28
  • 打赏
  • 举报
回复
建议你先把JSON.parse去掉,直接打印一下你从接口拉回来的数据
sha虫剂 2020-05-28
  • 打赏
  • 举报
回复
你从接口里面拉回来的又不是字符串,干嘛要用JSON.parse??????本就是这样的数据,再转化肯定转不动啊
weixin_43964855 2020-05-28
  • 打赏
  • 举报
回复
不对,也是爆同样的错,VM52:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttpRequest.xhr.onload (ajax.html:26)提示这样 josn代码是这样的 { "id":1, "name":"李白", }, { "id":2, "name":"杜甫", }, { "id":3, "name":"白居易", }
天际的海浪 2020-05-27
  • 打赏
  • 举报
回复
console.log(this.responseText)输出下,看看json的格式是否正确

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧