我有一个页面通过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());
});
}
});
}
答案 0 :(得分:12)
现代浏览器在使用XMLHttpRequest
对象发出请求时添加以下请求标头:
X-Requested-With: XMLHttpRequest
在PHP中,使用以下命令检查此标头是否存在:
$_SERVER['HTTP_X_REQUESTED_WITH']
答案 1 :(得分:-1)
您永远不能信任客户及其发送的信息! 标头可能被黑客欺骗(例如使用cURL),甚至HTTP_X_REQUESTED_WITH也不可靠。没有100%可靠的方式来了解这一点。 唯一的方法是使用验证码...