if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//вот тебе данные в виде JSON
} else {
//а вот тебе те же данные, но в виде HTML
}
Василий Банников, а почему бы не надеятся? Ведь запросы контролируемые. Можно явно добавлять этото заголовок. Или поставить в дефолтный конфиг. Например, axios добавляет такой заголовок по умолчанию.
Я не могу понять следующего момента. Допустим, пользователь переходит на новую страницу, часть контента на которой генерируется из данных, полученных из api. Каким образом мне отслеживать переход пользователя? При помощи JS?
vanek_parenek, именно. Навесьте на ссылки обработчик клика. Например, если jQuery:
$('a').on('click', function (e) {
e.preventDefault(); //блокирует обычный переход по ссылке
$.ajax(e.event.target.href, success: function(data) {
//здесь выполняем вставку полученных данных в нужные части страницы
})
})
Сергей delphinpro, да это моя личная деформация (делаю API первее UI).
Никогда не обращал внимания, ставят ли всякие клиенты такой заголовок, тк делаю API так, чтобы не надо было ставить заголовки, без которых можно обойтись.