javascript - 难倒为什么 Javascript AJAX 成功:JSON 数据是“无效的”
问题描述
我很难过为什么我的 Flask 称为 JSON 数据没有被 ajax 成功等待语句读取,该语句在其他地方运行良好。我意识到 Success: 语句应该等待数据返回并且确实如此,但是返回的数据不能作为任何 JSON 访问。没有控制台或浏览器控制台错误来指示数据被视为“无效”的原因
烧瓶功能
@blueprint.route('/target_liner')
def target_liner():
ind_id = int(request.args.get('ind_id'))
label = "1508 Loss Correction"
data = '[{"Program_Name":"' + label + '"}]'
return data
JSON数据
[{"Program_Name":"1508 Loss Correction"}]
// 这是已确认的合法 JSON
Javascript
function updates() {
$.ajax({
url: "/target_line",
method: "GET",
data: {
ind_id: 1508
},
success: function (data) {
console.log(data);
alert(data); // This shows the JSON string correctly in Chrome Inspect console
alert(data.Program_Name);
alert(data[0]['Program_Name']);
alert(data[0].Program_Name );
}
});
};
updates();
解决方案
返回的数据是一个字符串。您可以在成功后执行 JSON.parse(data) ,也可以在 ajax 请求中使用 dataType: 'json' 。如果您在使用 dataType: 'json' 时没有正确形成 JSON 字符串,则可能会出现解析错误。
推荐阅读
- java - 无法使用 JDBC 驱动程序连接到 MYSQL
- python - 如何在 python 中解决这个正则表达式问题
- javascript - 在 Yii2 中使用 clipboard.js
- java - 编译器是否从另一个中找出通用参数列表之一?
- java - Firebase getChildrenCount() 始终返回“1”
- azure - Azure DevOps 托管生成代理 MSI
- prolog - Prolog - 用英语解释跟踪步骤
- ssl - Paypal 连接错误 SSL 读取:error:00000000:lib(0):func(0):reason(0), errno 104
- vba - 替换所有 txt 文件中的所有选项卡
- c++ - 使用 `boost::lexical_cast` 会导致错误“标识符“__float128”未定义”