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, сервер будет отдавать только контент страницы, без шапки и футера.

→ Ссылка