问题
ajax 获取 json 数据全是 undefined
今天在用 AJAX 实现搜索联想功能时,联想的全是 undefined…于是 debug 后发现前端 ajax 获取的 json 数据有问题!
分析
我们从后端发送给前端的只是 json 格式的字符串,并不是 json 对象,所以需要将字符串转换成 json 对象
解决方法
使用 eval 函数将字符串传换成 json 对象
以下为部分代码
$.ajax({
...
success(jsonString) {
let jsonArr = eval(jsonString); // 使用 eval 函数,关键滴一步
let html = "";
for (let i = 0; i < jsonArr.length; i++) {
let json = jsonArr[i];
html += "<p>" + json.content + "</p>"
}
}
})