我想检查服务器端对我的 php 页面的请求是否是 ajax 请求。
我看到了两种方法:
第一种方式:在请求中发送 GET
参数,告诉页面这是一个 AJAX 请求(= mypage.php?ajax
)
我的页面.php:
if(isset($_GET['ajax'])) {
//this is an ajax request, process data here.
}
第二种方式:将标题设置为 xmlHttpRequest
:
客户端js:
xmlHttpRequestObject.open(“GET”,url,true);
xmlHttpRequestObject.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
我的页面.php:
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
//request is ajax
}
事实是,这两种方法很容易被黑客入侵,因此检查我是否收到这样的 AJAX 请求并不安全。
如何检查我是否收到 AJAX 请求?
原文由 BackSlash 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有可靠的方法知道请求是通过 Ajax 发出的。您永远不能相信来自客户端的数据。您可以使用几种不同的方法,但可以通过欺骗轻松克服它们。