2016-12-30 97 views
0

我是試圖讓CI中使用AJAX的數據,但是當我在那個時間獲取數據發送請求給我的控制器我得到這個錯誤您剛纔的請求不允許

您剛纔的請求不允許。

這是我的Ajax代碼

$.ajax({ 
    type:'POST', 
    dataType: 'json', 
    url: "redeem_drink/testjs", 
    success: function(data){ 
     console.log(data);   
    }, 
    error: function(data){ 
     console.log(data); 
    } 
}); 

請幫助我如何設置Ajax代碼的獲取和發佈數據

+0

有沒有代碼可以支持php/codeigniter標籤 –

回答

0

的錯誤是由於您對當前提交CSRF值。除非通過獲取新的CSRF值作爲最後一個表單提交的響應來更新值,否則可以使用該表單提交表單一次。

確保您更新了CSRF值或重新載入了將自動刷新CSRF值的頁面。

在你的php代碼中使用代碼創建一個新的CSRF值。

$csrf = array(
     'name' => $this->security->get_csrf_token_name(), 
     'hash' => $this->security->get_csrf_hash() 
); 

return $this->output 
      ->set_content_type('application/json') 
      ->set_status_header(200) 
      ->set_output(json_encode($csrf)); 

併發送$ csrf數據作爲最後ajax提交表單的響應。

現在使用javascript更新所有表單的CSRF。

你可以這樣做,在成功函數裏面。

$('form').find('input[name='+data.name+']').val(data.hash); 
+0

很酷。你怎麼解決這個問題? –

+0

確保您更新了CSRF值或重新加載將自動刷新CSRF值的頁面。 –

+0

如何使用ajax將csrf值發送到我的控制器 –