Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > JQuery AJAX. HTML ответ на JSON запрос


Автор: localhost 28.2.2013, 08:44
Доброго всем дня,
Так уж вышло, что приходится мне переписывать фронтенд движка на популярном MVC фреймворке.
Задача состояла в том, чтобы отправить данные "быстрого фильтра" на контроллер, и обновить целевой DIV без перезагрузки страницы.
В JS я новичок, но как использовать библиотечный $.ajax для отправки я, кажется, допер

Код

var filter_params = {};

        $('#filters .filter-item').each(function(i) {
            filter_params.options = {};
            var option_name = $(this).find('.filter-titles').html();
            filter_params.options.name = option_name;
            filter_params.options.values = [];
            $(this).find('input:checked').each(function(j) {
                filter_params.options.values[j] = $(this).val();
            });
        });
        
        $("#page-content").fadeTo(200, 0.5, function() {
            $.ajax({
               url: "<?php echo $url; ?>",
               type: "POST",
               dataType: "json",
               data: (filter_params),             
            }).always (function(data) { 
                        $("#page-content").html(data.responceText);
                        $("#page-content").fadeTo(200, 1);
                    })

        });


Данные я отправляю, контроллер их обрабатывает и возвращает не JSON, а HTML код того куска, который мне надо вставить в целевой div#page-content.
Соответственно, $.ajax возвращает ошибку, хотя возвращает то, что мне надо. Ковыряя Firebug я обратил внимание на ошибку JSON.parse. Т.е. я так понял, функция ожидает JSON-ответ на JSON-запрос.
Является ли нарушением логики работы данное поведение? Т.е. придется ли мне переписывать контроллер таким образом, чтобы он возвращал JSON-ответ, а затем в скрипте формировать структуру разметки из него? Или же быстрее изменить логику работы скрипта?

Автор: Aliance 28.2.2013, 11:03
Ну так дело в 
Цитата

dataType: "json",

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)