-4
我有一個登錄/註銷方法位於我的家庭控制器。所有由不同控制器生成的頁面上都有用戶名和密碼文本框。Ajax請求到codeigniter中的另一個控制器不起作用
我有一個常見的jquery文件,用於我所有的視圖,它使用ajax將任何頁面的用戶名和密碼發佈到主控制器登錄/註銷方法。但是這似乎不起作用,因爲這些頁面是由不同的控制器生成的,而不是由主控制器生成的。當我檢查螢火蟲時,我發現Ajax腳本中提到的網址正被追加到該頁面的控制器中,並且沒有發生實際的重定向。
我已經看到,通常建議在這種情況下使用自制助手。但我不知道如何通過jQuery的Ajax使用。
首頁控制器
function validate_login_user()
{
$this->load->model('model');
if ($this->sristi_model->validate_login())
{
$data = array (
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
$this->load->view('includes/logged_in.php');
//return true;
}else{
$this->load->view('includes/loginerror.php');
//return true;
}
}
JavaScript的
$('#sitelogin').on('click', '.login', function(){
var username = $('#username').val();
var password = $('#password').val();
if (username == "" || password == ""){
$('#error').fadeIn(200).delay(1000).fadeOut(1000);
return false;
}else if(username !== undefined && password !== undefined)
{
$.ajax({
url:"home/validate_login_user",
type:'POST',
data:{username:username,password:password},
cache:false,
success:function(msg){
$('#sitelogin').html(msg).hide().fadeIn(800);
$('#loginerror').delay(2000).fadeOut(1000);
}
});
return false;
}else{
return false;
}
});
當我嘗試通過產品控制登錄我得到這個在Firebug
URL: POST validate_login_user
localhost/ci/product/categories/localhost/ci/home/validate_login_user
Status: 500 Internal Server Error
Domain: localhost
Size: 1.6 KB
Remote IP: [::1]:80
讓你找到的東西我知道...
你能提供...任何代碼嗎? – benastan
它更多的是一個概念性問題,因此我想沒有代碼就問它。你想要哪部分代碼? – Sanjit
Firebug的輸出,用於登錄/註銷的家庭控制器代碼,用於執行請求的JavaScript代碼。甚至可能是登錄表單的html。 – benastan