2013-03-06 57 views
0

我的Codeigniter視圖,我有以下代碼通過jquery ajax函數發送當前和新密碼給控制器,但它好像數據沒有傳遞給控制器​​。 看看你能否幫助我。Jquery ajax無法發佈數據

var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass'; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     //datatype: "json", 
     data:'cu_pass=' + cu_pass + '&new_pass=' + new_pass, 
     success: function(r){ 
      if(r==1){ 
       alert("Password Changed Successfully!"); 
      }else{ 
       alert("Error changing password!"); 
      } 
     } 
    }); 

控制器:

public function change_my_pass($cu_pass="", $new_pass=""){ 
    //$cu_pass = $this->input->post('cu_pass'); 
    //$new_pass = $this->input->post('new_pass'); 
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass); 
} 
+0

但你在哪裏甚至p在你的文章中分配數據? – 2013-03-06 06:04:50

回答

0

試試這個傳球后作爲JSON數據

var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass/'; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     datatype: "json", 
     data:{cu_pass: cu_pass,new_pass: new_pass}, 
     success: function(r){ 
      if(r==1){ 
       alert("Password Changed Successfully!"); 
      }else{ 
       alert("Error changing password!"); 
      } 
     } 
    }); 

控制器

public function change_my_pass($cu_pass="", $new_pass=""){ 
    $cu_pass = $this->input->post('cu_pass'); 
    $new_pass = $this->input->post('new_pass'); 
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass); 
} 
+0

但是,URL的值的末尾的斜線是不需要的! – goseo 2013-03-06 07:24:17

0

你可以使用序列化()方法來獲取表單數據,並將其傳遞到AJAX數據PARAMS。

0
在$就

({URL僅傳遞頁面 &的URL刪除變量,你想用URL 添加數據傳遞 數據:{new_pass:new_pass_valu,cu_pass:cu_pass_value},

0

請個CSRF的配置文件,如果它是開放的,則帶上'csrf_token_name'參數。

的config/config.php文件

/* 
|-------------------------------------------------------------------------- 
| Cross Site Request Forgery 
|-------------------------------------------------------------------------- 
| Enables a CSRF cookie token to be set. When set to TRUE, token will be 
| checked on a submitted form. If you are accepting user data, it is strongly 
| recommended CSRF protection be enabled. 
| 
| 'csrf_token_name' = The token name 
| 'csrf_cookie_name' = The cookie name 
| 'csrf_expire' = The number in seconds the token should expire. 
*/ 
$config['csrf_protection'] = TRUE; 
$config['csrf_token_name'] = 'csrf_test_name'; 
$config['csrf_cookie_name'] = 'csrf_cookie_name'; 
$config['csrf_expire'] = 7200; 

正確的AJAX POST請求:

var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass/'; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     //datatype: "json", 
     data:'cu_pass=' + cu_pass + '&new_pass=' + new_pass + '&<?php echo config_item('csrf_token_name');?>=<?php echo $this->input->cookie(config_item('csrf_cookie_name'))?>', 
     success: function(r){ 
      if(r==1){ 
       alert("Password Changed Successfully!"); 
      }else{ 
       alert("Error changing password!"); 
      } 
     } 
    }); 

控制器:

public function change_my_pass(){ 
    $cu_pass = $this->input->post('cu_pass'); 
    $new_pass = $this->input->post('new_pass'); 
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass); 
}