2015-09-09 8 views
5

Controller Ciao mi chiamo per ottenere sezione utilizzando AJAX nella mia app basata codeigniter che hanno CSRF AbilitaAjax CSRF 403 vietato codeigniter

mio codice ajax

$('#classes').change(function(){ 
    $classes=$(this).val(); 
      $.ajax({ 
      type:"POST", 
      data:{ 
       '<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>', 
       'class':$classes 
      }, 
      url:"<?php echo base_url();?>index.php/admin/getsection/"+$classes, 
      success:function(return_data) 
      { 
       //alert(return_data); 
       $('#section').html(''); 
       $('#section').html(return_data); 
       $('#section').val(section); 
      } 
    }); 

quando chiamo la funzione ajax prima volta, funzionerà perfettamente ma quando avrò di nuovo la stessa funzione, restituirà 403 errore proibito.

Si prega di consulenza quello che faccio

risposta

10

Da the docs:

Gettoni possono essere sia rigenerato su ogni presentazione (default) o mantenuto la stessa per tutta la durata del cookie CSRF. La rigenerazione predefinita dei token fornisce una sicurezza più rigida, ma può causare problemi di usabilità in quanto altri token non sono più validi (navigazione indietro/avanti, più schede/finestre, azioni asincrone, ecc.). Si può modificare questo comportamento modificando il seguente parametro di configurazione

$config['csrf_regenerate'] = TRUE; 

Set che FALSE.

+0

grazie @quentin –