2011-07-02 4 views
3

私はforgot_passwordのように私のコントローラのメソッドを持って、loginなどAJAXによってのみ呼び出されるコントローラメソッドはプライベートですか?

これらは、唯一のAJAX経由で呼ばれていますが、デフォルトでは、あなたが原因CIが動作する方法にURLを経由して、それらを参照することができます。

私はどうにかそれらを非公開にしても、AJAX経由でアクセスできますか?何がここで終わったの?

+0

を使用することです!他の人たちがあなたの答えの選択を中継するとき。 –

答えて

0

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";  
} 
14

古くなって、ここでのベストプラクティスは、あなたがそれらのいずれかが正しいと感じた場合に、その答えを受け入れ$this->input->is_ajax_request()

if(! $this->input->is_ajax_request()) { 
    redirect('404'); 
} 
関連する問題