基于AJAX的网页设计作业:JSON.parse无报错但无法正常工作求助
解决AJAX请求后JSON.parse()失效的问题
嘿,我一眼就瞅到问题所在啦!咱们一步步来捋清楚:
首先,你在$.ajax里设置了dataType: "json",这意味着jQuery会自动帮你把服务器返回的JSON字符串解析成JavaScript对象,根本不需要再手动调用JSON.parse()了——这就是你遇到问题的核心原因!如果你强行对已经解析好的对象用JSON.parse(),反而会抛出错误,因为这个函数只接受字符串作为参数。
另外,你的success回调函数参数顺序也搞反了:jQuery的success回调参数顺序是(data, textStatus, xhr),而不是你写的(xhr, responseText)。第一个参数才是解析后的JSON数据哦。
给你修正后的代码:
let artist_list; $.ajax({ dataType: "json", async: false, method: "GET", url: "/database/artists.json", error: function (xhr) { console.log("AJAX error:", xhr.status); }, success: function(data, textStatus, xhr) { console.log("Ajax operation succeeded, status code:", xhr.status); console.log("Parsed data:", data); // 直接使用data就行,它已经是解析好的对象了 artist_list = data; } });
额外提个小建议:以后可以用console.log(typeof data)来确认数据类型,如果输出是object,就说明已经解析完成,不用再碰JSON.parse()啦。
内容的提问来源于stack exchange,提问作者Стёпа Кашкаров
相关产品推荐
相关产品推荐

