В начале я отключил свой CSRF только для простоты, чтобы сделать мою форму/ajax работу. Теперь, когда я включил его и попытался использовать входы и прочее для CSRF, ничего не получится. Моя форма не отправляется или когда она обновляет всю мою страницу, что я не могу допустить, чтобы это произошло. Вот мой текущий код.CSRF Protections with AJAX & FORM - CodeIgniter - Not Sending
form method="post">
<input type="text" name="vip_text_box" id="vip" value="<?php echo $total_amount ?>"> <br><br>
<input type="submit" id="submit" value="Redeem" onclick="return rebate_amount()">
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
</form>
И AJAX:
function rebate_amount(){
var value = document.getElementById('vip').value;
var datastring = 'vip='+value;
var url = base_url + '/index.php/home/redeeming_form_value';
$.ajax({
type : 'post',
url : url,
data: datastring,
cache: false,
success: function(html){
$('#vip_point_redeeming').html(html);
}
});
return false;
}
Имейте в виду. Это все работает, когда CSRF отключен в файле конфигурации. Но я думаю, что здесь проблема с CSRF с формой/ajax.
Ваш запрос AJAX создает операцию POST, но не в состоянии обеспечить маркер CSRF. Когда CodeIgniter получает операцию POST, он не может найти TOKEN и отключает все, прежде чем вы сможете запустить любой код. –