I’m trying to update user password from panel admin with ajax request is use is_ajax_request() on the controller but this function says I’m not in ajax request. why does this happen?
Here’s my ajax jquery:
$.ajax({
url: urlTarget,
traditional: true,
type: 'post',
dataType: 'json',
data: {currentPassword:currentPassword, newPassword:newPassword},
success: function ( result ) {
if( result.status == 'success' ){
window.location = baseUrl;
}else{
$("#login-invalid-input").show();
$("#login-submit").attr("disabled", false);
}
},
error: ajax_error_handling
});
on the controller:
private function ajax_checking(){
if ( !$this->input->is_ajax_request() ) {
redirect( base_url() );
}
}
public function change_password(){
$this->ajax_checking();
$this->load->model("admin_model");
$postData = $this->input->post();
$id = $this->session->userdata('id_admin');
if($this->admin_model->check_current_password($id, $postData['currentPassword'])){
$this->admin_model->change_password($id, $postData['newPassword']);
$send["status"] == "success";
}else
$send["status"] == "fail";
echo json_encode($send);
}
since the result of ajax_checking is false the system redirect me to the set url. Anyone can help me?
Advertisement
Answer
thanks for your help smit, here’s the problem that redirect me to baseUrl :
i set this on the controller, it happens because i have this script on the controllers that redirect me to the basicUrl:
public function __Construct() {
parent::__Construct();
if($this->session->userdata('logged_in') ) {
redirect( base_url() );
}
}