相关疑难解决方法(0)

如何检查请求是否是PHP的AJAX请求

如果对我的php页面的请求是ajax请求,我想检查服务器端.

我看到了两种方法:

第一种方式:GET在请求中发送一个参数,告诉页面这是一个AJAX请求(= mypage.php?ajax)

mypage.php:

if(isset($_GET['ajax'])) {
    //this is an ajax request, process data here.
}
Run Code Online (Sandbox Code Playgroud)

第二种方式:设置标题为xmlHttpRequest:

客户端js:

xmlHttpRequestObject.open(“GET”,url,true);
xmlHttpRequestObject.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
Run Code Online (Sandbox Code Playgroud)

mypage.php:

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
    //request is ajax
}
Run Code Online (Sandbox Code Playgroud)

事实是,这两种方式很容易被黑客攻击,因此检查我是否收到这样的AJAX请求是不安全的.

如何检查我是否收到了AJAX请求?

php ajax xmlhttprequest

49
推荐指数
6
解决办法
10万
查看次数

如何在CodeIgniter中检查请求是否通过AJAX进行?

如何检查请求是否为AJAX?我正在使用CodeIgniter.我有一个链接,当它单击时,它将打开弹出对话框窗口,这是通过ajax请求控制器名称完成的login_window().

//Here is the controller name:
function login_window(){
    // request via ajax
    $this->load->view("login_window");
}
Run Code Online (Sandbox Code Playgroud)

jQuery的

//here is the jquery code:
//I am using a jquery plugin FACEBOX

$('a[rel*=dialog]').facebox();

<a href="http://localhost/codeigniter/login_window" rel="dialog">Login</a>
Run Code Online (Sandbox Code Playgroud)

我想检查它是否是一个AJAX请求,如果没有,我会将它们重定向到主页.所以他们无法访问仅适用于ajax请求的页面.

php ajax codeigniter

31
推荐指数
2
解决办法
3万
查看次数

标签 统计

ajax ×2

php ×2

codeigniter ×1

xmlhttprequest ×1