jQuery getJSON()返回200状态码但无数据返回问题排查
问题分析与解决
1. 控制台输出错误,未打印实际数据
你的代码里console.log("data");是打印字符串"data",而非请求返回的实际数据。需要去掉引号,改为打印变量data:
$.getJSON("/workreq_results?id=" + primaryValue, function (data) { console.log(data); // 打印实际返回的数据 });
2. 返回的JSON存在语法错误
后端返回的JSON中,最后一个键值对"DeptName": "HR ",后面多了一个逗号,这不符合JSON语法规范。jQuery的getJSON会自动解析返回的JSON,一旦解析失败,就不会进入成功回调函数,且默认不会触发控制台报错。
修复后的JSON格式应为:
{ "results": [ { "DeptID": "cad426c1-eec7-ed11-b597-000d3aa9a09b", "DeptName": "HR " } ] }
额外排查建议
可以给getJSON添加失败回调,方便排查请求或解析类问题:
$.getJSON("/workreq_results?id=" + primaryValue, function (data) { console.log(data); }).fail(function(jqXHR, textStatus, errorThrown) { console.log("请求或解析错误:", textStatus, errorThrown); });
内容的提问来源于stack exchange,提问作者Bogdan Rotaru
相关产品推荐
相关产品推荐

