У меня есть страница, которая загружает другие страницы через 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 …