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

标签 php ajax codeigniter

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

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 请求的页面。

最佳答案

如果您使用的是发送 X-Requested-With header 的库,那么您可以这样做...

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

关于php - 我如何检查请求是否通过 CodeIgniter 中的 AJAX 发出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301150/

相关文章:

php - 如何在codeigniter中获取数据库列的总和?

php - 如何将我的 codeigniter 项目放到我的主机帐户 (iPage) 上?

javascript - 从函数返回 json 对象

javascript - Ajax 提交 nicEdit

php - Codeigniter 扩展扩展的 MY_Controller

java - 具有非数字键的 PHP 数组的 Java 等价物是什么?

php - mod_rewrite 后样式表未加载

php - 如果服务器关闭,Codeigniter 备用数据库连接

PHP 相当于 OpenSSL RSA 命令

jquery - 为什么从 Ajax 加载新文本后 jQuery Expander 就会停止工作?