You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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,提问作者Стёпа Кашкаров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:23:57