如何检查请求是否为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)
//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请求的页面.
是否可以检查是否从特定页面提交了这些$_GET或者$_POST值?
例如,有一个ajax在page1提交的价值page2.php?q=abc,而page2只接受q当它从提交page1.
如果我直接浏览到该页面page2.php?q=abc,php除非我提交了值,否则不会运行page1.
有可能吗?
编辑1:
因为我可以访问page2并获得结果.不要提及session,因为我可以验证session匹配我的需求,提交给php的值是否有效.
我想要的是检查请求是否从特定页面发送.如果为true,则接受值并处理它,否则,重定向到主页或其他内容.
编辑2:我的问题是,不仅是通过Ajax提交的值,还有直接访问,例如href="page2.php?q=abc".我想令牌将是最好的方法,查询部分将再次验证.