2012-04-25 45 views
0

我用這個在我的註冊頁面來檢查,如果電子郵件已經存在於我的數據庫:保護阿賈克斯jQuery的

$('#email').blur(function() { 
    var email = $(this).val(); 
    $.post('ajax/get_request/check',{key:"email",value:email},function(data) { 
    alert(data); 
    }); 
}); 

它確實工作正常。但是,我注意到,如果我通過瀏覽器的URL地址欄訪問ajax路徑http://example.com/ajax/get_request/check,則顯示爲空。我試過這個腳本來重定向,如果value爲空。

//controller.php 
public function check($key=NULL,$value=NULL) 
{ 
    if(is_null($value)) redirect(base_url(),'refresh'); 
    // ... more scripts below ... 
} 

但這會影響我的註冊ajax請求響應。我想在這裏實現的是檢測用戶是否通過註冊表單訪問ajax,而不是直接在URL瀏覽器上輸入路徑。

+1

www.google.co.uk/#hl=en&sclient=psy-ab&q=how+to+check+if+request+is+made+通過+ ajax +或+通過+瀏覽器&oq =如何+ + +檢查+如果+請求+是+製作+通過+ ajax +或+通過+瀏覽器 – 2012-04-25 08:56:20

+0

http://stackoverflow.com/questions/4301150/how-do-我檢查,如果請求是通過ajax-with-php製作的 – neoascetic 2012-04-25 08:59:57

+0

HTTP_X_REQUESTED_WITH在CodeIgniter中是未定義的。 – 2012-04-25 09:08:07

回答

2

您可以使用此

$this->input->is_ajax_request() 

檢查,如果傳入的請求是一個Ajax請求。這是codeigniter2

在你的控制器可用,

if($this->input->is_ajax_request()){ 
    //do your stuffs 
}else{ 
    die("Access Prohibited."); 
}