Ajax подгрузка контента
Использую единую точку входа в index.php. Делаю загрузку хидера, футера и необходимого контента. Я хочу изменять контент без перегрузки страницы - тут нужен ajax. Но тут непонятно что с ссылками делать, href пустой, а при onclick происходит изменения контента (ajax).Как быть?
Ответы (1 шт):
Итак, смею предположить, у вас примерно такой index.php
$page = $_GET["path"]; // настраивается через .htaccess
include("header.php");
if(file_exists($page . ".php"){
include($page . ".php");
}else{
include("error.php");
}
include("footer.php");
Во-первых, при отправке AJAX нужно добавить заголовок X-Requested-With: XMLHttpRequest. Этот заголовок значит что запрос посылается AJAXом и сервер должен это учитывать. jQuery добавляет его сам, на чистом js нужно будет самому добавить.
Теперь добавляем проверку на сервере:
$isAjax = strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
$page = $_GET["path"];
if(!$isAjax){
include("header.php");
}
if(file_exists($page . ".php"){
include($page . ".php");
}else{
include("error.php");
}
if(!$isAjax){
include("footer.php");
}
Таким образом, если передать заголовок X-Requested-With: XMLHttpRequest, сервер будет отдавать только контент страницы, без шапки и футера.