Изменился с JQuery 1.4 на 1.5.1, и getJson перестал работать - PullRequest
2 голосов
/ 14 марта 2011

Сегодня на веб-сайте, над которым я работал, я изменил версию jQuery с 1.4 на 1.5.1, однако из-за этого перестала работать функция, основанная на функции getJson, я посмотрел на API и как на запрос является getRequest Я предполагал, что он был обратно совместим.

Вот код:

function EmailAutoComplete(firstName, lastName, target) {
    // Query /AutoComplete/Email?FirstName=&LastName= for an e-mail
    // list and populate the select box target with the results.
    $.getJSON('@Url.Action("AutoComplete", "Email")', {
        FirstName: firstName,
        LastName: lastName
    }, function(matchingEmails) {
        var oldVal = target.val();
        target.empty();
        if (matchingEmails == null || matchingEmails.length == 0) {
            target.append('<option value="">E-mail address not found</option>');
        } else {
            $.each(matchingEmails, function(key, val) {
                var selected = (val == oldVal) ? 'selected="selected"' : '';
                target.append('<option value="' + val + '" ' + selected + '>' + val + '</option>');
            });

            if (matchingEmails.length > 1) {
                target.addClass("multipleEmailsAvailable");
            } else {
                target.removeClass("multipleEmailsAvailable");
            }
        }
    });
}

У кого-нибудь еще была такая проблема?

Спасибо, Алекс.

Ответы [ 2 ]

4 голосов
/ 14 марта 2011

Попробуйте использовать $.ajax() вместо этого и назначьте dataType: "text json"

Начиная с jQuery 1.5, jQuery может преобразовать тип данных из того, что он получил в заголовке типа контента, в то, что вам нужно.Например, если вы хотите, чтобы текстовый ответ обрабатывался как XML, используйте «text xml» для dataType.Вы также можете сделать запрос JSONP, получить его в виде текста и интерпретировать с помощью jQuery как XML: «jsonp text xml».Аналогично, сокращенная строка, такая как «jsonp xml», сначала попытается преобразовать из jsonp в xml, а в случае неудачи - из jsonp в текст, а затем из текста в xml.

0 голосов
/ 25 июня 2011

Я столкнулся с той же самой проблемой.

Оказалось, что мой файл json был недействительным.

После исправления моего файла json getJson снова работал как чудо.

...