首页 > 解决方案 > 难倒为什么 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();

标签: javascriptjqueryjsonajaxflask

解决方案


返回的数据是一个字符串。您可以在成功后执行 JSON.parse(data) ,也可以在 ajax 请求中使用 dataType: 'json' 。如果您在使用 dataType: 'json' 时没有正确形成 JSON 字符串,则可能会出现解析错误。


推荐阅读