我试图用php脚本阻止一些文件,但是,我希望我的javascript ajax调用允许脚本,我不知道这是否可能但是..
我现在做的是,
$filename = array('index.php');
$basename = basename($_SERVER['REQUEST_URI']);
if(!in_array($basename, $filename)) {
die('...');
}
这将阻止所有文件而不是index.php,但是如果我有一个login.php可以使我的ajax调用成为可能呢?
答案 0 :(得分:2)
当您发送JavaScript AJAX调用时,它会添加
X-Requested-With:XmlHTTPRequest
到HTTP标头。因此,如果你想在AJAX调用的情况下做某事,你可以 检查这样的事情:
$headers = getallheaders();
if($headers['X-Requested-With') == 'XMLHttpRequest') {
// ...
}
请记住,任何HTTP客户端都可以修改标头,因此它并没有真正添加任何安全性(例如,浏览器无法使用默认设置直接调用您的PHP脚本)。