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