Как узнать, вызывается ли страница через Ajax или ее собственный

У меня есть страница, которая загружает другие страницы через Ajax (думаю, кадры, кроме без фреймов).

Очевидно, что эти страницы могут быть вызваны независимо, поэтому я хочу определить, вызваны ли они через Ajax, а если нет, перенаправляйтесь на главную страницу Ajax.

Страницы являются php-страницами, поэтому я также имею доступ к этому.

индекс:

goto = "StandalonePrograms.php"; var clear = "<br style='clear:both;'>" if(goto != ''){ $.ajax({ url: goto, context: document.body, success: function(data){ $('#mainwindow').html(data + clear); $('#mainwindow').find("script").each(function(i){ eval($(this).text()); }); } }); } 

Современные браузеры добавляют следующий заголовок запроса, когда запрос выполняется с использованием объекта XMLHttpRequest :

 X-Requested-With: XMLHttpRequest 

В PHP проверьте наличие этого заголовка, используя:

 $_SERVER['HTTP_X_REQUESTED_WITH'] 

Вы никогда не сможете доверять клиентам и их отправляемой информации! Заголовки могут быть подделаны хакерами (например, cURL), и даже HTTP_X_REQUESTED_WITH не является надежным. нет 100% надежного способа узнать это. Единственный способ использования captcha …