难以捉摸的jQuery JSON Parser错误

时间:2011-02-23 07:14:01

标签: django json forms jquery

我有一个ajax调用,将JSON返回到循环以填充表单字段。原始数据看起来很好,但它永远不会通过循环进入表单,并且在文档的第1行引发了“Uncaught SyntaxError:Unexpected token:”错误。

这是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()来格式化响应。

提前感谢您的煽动。

3 个答案:

答案 0 :(得分:0)

我很确定JSON会被zipCode中的前导0弄糊涂;根据json.org的说法,这不应该解析为数字。你确定你不打算成为一个字符串吗?

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

之前我遇到过这个问题很多次,这与return dataType有关。通过使用$ .get或$ .post而不是$ .ajax我已经能够解决问题,所以对你:

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

这样做不会给你带来任何错误。