我有一个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()来格式化响应。
提前感谢您的煽动。
答案 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');
这样做不会给你带来任何错误。