2011-02-23 2 views
0

У меня есть вызов ajax, возвращающий JSON в цикл, чтобы заполнить поля формы. Необработанные данные выглядят прекрасно, но он никогда не делает это, хотя цикл и в форму, и ошибка «Неактивировать SyntaxError: Неожиданный токен:» выдается в строке 1 документа.elusive jQuery Ошибка JSON Parser

Это функция 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} 

Я использую json.dump() в Django для форматирования ответа.

Благодарим вас за ваши призывы.

ответ

0

Я имел эту проблему довольно много раз, прежде чем, это что-то делать с обратным DATATYPE. Используя $ .get или $ .post вместо $ .ajax Я был в состоянии решить эту проблему, так что для вас:

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

Делать это не должно дать вам отсутствие ошибок.

0

Я уверен, что JSON будет смущен ведущим 0 в zipCode; который не должен анализироваться как число, согласно json.org. Вы уверены, что не хотите, чтобы это была строка?

0

Попробуйте добавить пару скобок вокруг необработанного JSON, что делает его как

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