【问题标题】:elusive jQuery JSON Parser error难以捉摸的 jQuery JSON 解析器错误
【发布时间】:2011-07-02 13:26:22
【问题描述】:

我有一个 ajax 调用将 JSON 返回到循环以填充表单字段。原始数据看起来不错,但它永远不会通过循环进入表单,并且在文档的第 1 行抛出“未捕获的语法错误:意外的令牌:”错误。

这是ajax函数:

$(function() {
$('#id_license' ).blur( function() {
    q = $( '#id_license' ).val();
    $.ajax({
        datatype: 'json',
        type: "POST",
        data: 'lic='+q,
        url: "/usr/xhr_license_search/?xhr",
        success: function(data)
        { $.each(data, function(field, value){
                  $("#id_"+field).val(value);



        });
            console.log(data);
      }
});

}); });

这是返回的原始 JSON: (手动匿名)

{"First_Name":"Jon","Last_Name":"Doe","address":"2 A st.","city":"anthtown","grade":"T5","licNum":"08933","state":"TA","user":1099,"zipCode":09117} 

我在 Django 中使用 json.dump() 来格式化响应。

提前感谢您的鼓励。

【问题讨论】:

    标签: django json forms jquery


    【解决方案1】:

    我之前也遇到过很多次这个问题,这与返回数据类型有关。通过使用 $.get 或 $.post 而不是 $.ajax 我已经能够解决问题,所以对你来说:

    $.post('/usr/xhr_license_search/?xhr', 'lic='+q, function(data){
        $.each(data, function(field, value){
            $("#id_"+field).val(value);
        });
    }, 'json');
    

    这样做应该不会出错。

    【讨论】:

      【解决方案2】:

      我很确定 JSON 会被 zipCode 中的前导 0 混淆;根据 json.org ,不应将其解析为数字。你确定你不打算把它变成一个字符串吗?

      【讨论】:

        【解决方案3】:

        尝试在原始 json 周围添加一对括号,这样会像

        ({"First_Name":"Jon","Last_Name":"Doe","address":"2 A st.","city":"anthtown","grade":"T5","licNum":"08933","state":"TA","user":1099,"zipCode":09117})
        

        【讨论】:

          猜你喜欢
          • 2011-10-07
          • 1970-01-01
          • 1970-01-01
          • 2013-02-12
          • 1970-01-01
          • 2012-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多