День добрый. Делаю lazy-load ленту новостей. Проблема в том, что ajax запрос возвращает всю html страницу. Проверяю через консоль. Кусок скрипта: PHP: <script> $(document).ready(function(){ var num = 15; $(window).scroll(function (){ if ($(window).scrollTop() + $(window).height() >= $(document).height()){ $.ajax({ url: 'http://domain.com/feed', method: 'GET', data: {"num" : num} }).done(function(data){ console.log(data); // проверяю результат запроса }); } }); }); </script> Как бы отрабатывает, при прокрутке вниз прилетает нужный мне get - http://domain.com/feed?num=15, но в консоли, вместо результатов запроса (которые я возвращаю в json_encode) вываливается html содержимое всей страницы. Подскажите пожалуйста, где я свернул не туда?
Кто писал скрипт который отдаёт всю страницу? Может на его логику посмотреть. https://ru.wikipedia.org/wiki/Домены_для_примеров
Я извиняюсь, но я не понял, что Вы имеете ввиду? Там живой домен, это просто в примере я указал такой
Нет не решена. У меня там стоит мой "живой" домен, суть не в этом. Суть в том, что скрипт работает, я при прокрутке до конца страницы получаю запрос на сервер вида http://домен/feed?num=15, и даже с правильными данными из обработчика, но это все обернуто в код всей страницы. Структурно то, что я вижу в консоли выглядит так: <html> .... подключение в head jquery и скрипта .... контент страницы.... ---> результат работы скрипта (следующие 15 записей) ..... контент страницы.... </html> Я не понимаю, почему так происходит, возможно это из-за того, что http://домен/feed использует единую точку входа через index.php?
Это происходит из-за того что кто-то так написал скрипт. возможно ты это не учитываешь, когда запрос num идёт, отдавай только нужную информацию и всё.
Запрос вида "select * from news limit $num, 15" Я не совсем понял, Вашу фразу: Я и так отдаю только нужный мне массив новостей.
Как я могу отдавать лишние данные если массив news содержит только выборку из бд? Вы говорите какими-то абстракциями, можете конкретно указать на мою ошибку?
не, если приходят нужные данные, но с шаблоном, то видимо ты не отключаешь отрисовку шаблона страницы. Получается так.
Ну вот, я не вижу там html кода, похоже всё правильно, только json вернёт. Может веб сервер или PHP настроен как-то отдавать HTML в любом случаи? Возможно ты показал не весь код, и спрятал который выводит тот HTML от которого надо избавится.
Дык, отправь данные не через ajax. Открой адрес в браузере. Посмотри что сервер отдает а дальше обычный дебаг.
Решил проблему вынеся метод возвращающий данные в отдельный контроллер. Проблема таки в том, что первоначальный вариант шел через контроллер Page, а он изначально генерит саму страницу по темплейту и только после отрабатывает запрос. denis01 был прав, в таком варианте я цеплял помимо результатов лишний html. Всем спасибо.