我想判断一下服务器端对我的php页面的请求是否是AJAX请求.
我看到了两种方法:
第一种方法:在请求中发送GET
参数,告诉页面这是一个Ajax请求(=mypage.php?ajax
)
mypage.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');
mypage.php:
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
//request is ajax
}
事实上,这两种方法很容易被黑客攻击,所以判断我是否收到这样的AJAX请求是不安全的.
如何判断是否收到AJAX请求?