我的控制器上有方法,例如forgot_password
,login
等。
这些只能通过AJAX调用,但默认情况下,由于CI的工作方式,您可以通过URL浏览它们。
我可以以某种方式将它们设为私有并仍然通过AJAX访问它们吗?这里做了什么?
答案 0 :(得分:17)
此处的最佳做法是使用$this->input->is_ajax_request()
if(! $this->input->is_ajax_request()) {
redirect('404');
}
答案 1 :(得分:1)
如果你想测试ajax请求,这样的事情可能会有所帮助。
编辑:CI中有一个辅助函数来检测ajax请求。 答案已过时
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest")
{
// most probably ajax request
}
else
{
echo "not sure";
}