ошибка - PullRequest
       17

ошибка

0 голосов
/ 18 октября 2010

в следующем коде, почему это работает:

var addresses = {"2-avenue-bir-hakiem": "2 Avenue Bir Hakiem", "56-rue-marcel-pagnol": "56 rue Marcel Pagnol"};

но

var addresses = json.val;

не работает

мой вывод json действителен!

{"2-авеню бир-хакием": "2 авеню бир Hakiem "," 56-rue-marcel-pagnol ":" 56 Рю Марсель Паньоль "}

ошибка, которую я получаю

a не определено [Сбой при этой ошибке] a)) (); еще c.error ("Неверный JSON: «+ a) ... f (d), если (i) для (f в а) {если (b.apply (а [е],

<script>
$(function() {
    function log( message ) {
        $( "<div/>" ).text( message ).prependTo( "#log" );
        $( "#log" ).attr( "scrollTop", 0 );
    }

    $( "#companies" ).autocomplete({
        source: ";companies",
        minLength: 2,
        select: function( event, ui ) {
            log( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
            $("#address").html(ui.item.id);
            $.ajax({
                type: 'GET',
                url: ';addresses?company=' + ui.item.id,
                dataType: 'json',
                // process the addresses
                success: function(json) {
                    $('body').append('Response Value: ' + json.val);
                    var opts = '';
                    var addresses = {"2-avenue-bir-hakiem": "2 Avenue Bir Hakiem", "56-rue-marcel-pagnol": "56 rue Marcel Pagnol"};
                    //var addresses = json.val;
                    $.each(addresses, function(k, v) {
                        opts += '<option>' + v + '</option>';
                    });
                    $('#address').html(opts);
                }
            }); //end ajax
        } // end select
    });
});
</script>

что мне не хватает?

спасибо

Ответы [ 2 ]

1 голос
/ 24 января 2012
jQuery.parseJSON(response);

Попробуйте это до $.each, потому что Jquery считает, что ваш ответ является строкой, а не JSON-объектом.

0 голосов
/ 18 октября 2010

Похоже, что вы не получаете верный JSON с сервера , а не то, что addresses JSON недопустим (хотя это просто литерал объекта).Вы уверены, что это правильный URL?

url: ';addresses?company=' + ui.item.id

Проверьте ответ, возвращающийся в firebug, chrome, fiddler ... все, что вы можете использовать, чтобы увидеть этот ответ, и проверьте, чтоон действителен здесь: http://www.jsonlint.com/

Из ваших симптомов следует, что вы в настоящее время получаете полностью пустой ответ, и я думаю, что используемый вами URL виноват, дважды проверьте, что вы пытаетесьвыбрать.

...