Реализация ответа Dooltaz на нативном PHP будет выглядеть следующим образом:
function isAjax() {
return $_SERVER['HTTP_X_REQUESTED_WITH'] === "XMLHttpRequest";
}
Это, конечно, зависит от заголовка X_Requested_With
, фактически отправляемого клиентским запросом XHR. Насколько я знаю, все основные библиотеки Javascript включают этот заголовок, но если вы переходите к реализации XHR, вам нужно добавить его.