Добрый вечер. В интернете нашел пример определения ajax запроса средствами php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// Если к нам идёт Ajax запрос, то ловим его
echo 'Это ajax запрос!';
exit;
}
//Если это не ajax запрос
echo 'Это не ajax запрос!';
Данный код, соответственно не работает у меня (глобальные переменные, настройки php, апач и т.д. Я не знаю.)
На
stackoverflow.com прочитал что данная переменная $servers формируется на основе заголовков и мол, ей нельзя доверять (ссылку на сайт с вопросом потерял.)
Предлагался вариант с $_GET['ajax'] и т.д.
Что меня больше всего интересует.
Соответственно придется 2 копии страницы делать, page1.php и page1ajax.php? Просто в случае ajax запроса, страница отдается jsone объектом.
Если считаете что можно в page1.php, определять запрос ajax это или не ajax запрос и соответственно отдавать нужный контент, появляются другие вопросы:
1) Использовать include(), тогда все равно придется делать 2 скрипта.
2) Если без include(), то стоит ли нагружать скрипт?
Решение: Всем спасибо! Просто оказалось, что я глупый. Ребята правильно про заголовки говорили. В js функции по отправки ajax запроса методом get, я не указал ни один заголовок.
var xhr = ajax._init();
xhr.open("GET", encodeURI(url), true);
>>>>>>>>>>>xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200) {
callback.call(xhr.responseText);
}
Может кому поможет, все работает.