Можно ли определить по запросу к php , был ли он отправлен jquery ?

php jQuery AJAX request

Пишу свой движок, тут наткнулся на одно неудобство.
Странички открываются как по ajax так и по ссылкам
но при ajax я добавляю в запрос ajax

к примеру ссылка localhost/main/main
но при ajax выполнении ссылка будет localhost/ajax/main/main

движок построен по mvc системе и роутер перед разборкой урла если видет ajax то его пропускает и себе помечает, что данные возвращать только самой страницы без темы. шаблона.


Собственно вопрос, можно ли в роутере распознать, ajax ли другим способом ?

Сам ajax запрос делается на jaquery : $.get("/ajax"+url, function(data){

метод из роутера по отловке ajax пока такой:

static function get_actions() {
$dir = connect::$config["system"]["dir"];
$res = explode('?',$_SERVER['REQUEST_URI']);
$res = explode('/', $res[0]);
if(is_array($res)) foreach($res AS $val) {
switch($val) {
case "ajax" : {
self::$ajax = true;
continue;
}
case $dir : continue;
default : {
$_res[] = $val;
}
}
}
return $_res;
}

Есть идеи ?
А все это для того, чтобы без мучений сайт мог находится не в корне.
Ответы:
Нет, нельзя.
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
   // Если к нам идёт Ajax запрос, то ловим его
   echo 'Это ajax запрос!';
}


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.