如何检查请求是否通过 CodeIgniter 中的 AJAX 发出?

2022-08-30 14:22:57

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

CodeIgniter

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

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>

我想检查它是否是AJAX请求,如果不是,我会将它们重定向到主页。因此,他们无法访问仅用于ajax请求的页面。


答案 1

如果您使用的是发送标头的库,则可以执行...X-Requested-With

if (strtolower(filter_input(INPUT_SERVER, 'HTTP_X_REQUESTED_WITH')) === 'xmlhttprequest') {
   // I'm AJAX!
}

答案 2

从Codeigniter 2.0开始,它最好使用$this->input->is_ajax_request()


推荐