Методы контроллера, которые вызываются только AJAX, делают приватными? - PullRequest
3 голосов
/ 02 июля 2011

У меня есть методы на моих контроллерах, такие как forgot_password, login и т. Д.

Они вызываются только через AJAX, но по умолчанию вы можете просматривать их через URL из-за способа работы CI.*

Могу ли я как-то сделать их приватными и по-прежнему получать к ним доступ через AJAX?Что здесь сделано?

Ответы [ 2 ]

17 голосов
/ 10 ноября 2011

Лучшей практикой здесь является использование $this->input->is_ajax_request()

if(! $this->input->is_ajax_request()) {
    redirect('404');
}
1 голос
/ 02 июля 2011

, если вы хотите проверить ajax-запрос, может помочь что-то подобное.

EDIT: в CI есть вспомогательная функция для обнаружения ajax-запроса. Ответ устарел

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") 
{
// most probably ajax request
}
else
{
   echo "not sure";     
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...