2016-12-30 1 views
0

ich bin versuchen, Daten zu erhalten Ajax in codeigniter verwenden, aber wenn ich Anfrage für get Daten an meinen Controller zu diesem Zeitpunkt ich diesen FehlerDie Aktion, die Sie angefordert haben, ist nicht erlaubt

anzubieten Die Aktion erhalten senden ist nicht erlaubt.

das ist mein Ajax-Code

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

mir bitte helfen, wie Ajax-Code-Setup für Daten erhalten und nach

+0

Es gibt keinen Code, um die php/codeigniter Tags zu unterstützen –

Antwort

0

Der Fehler ist aufgrund der CSRF Wert, den Sie für die aktuelle Vorlage haben. Mit dem kann das Formular nur einmal gesendet werden, es sei denn, der Wert wird aktualisiert, indem ein neuer CSRF-Wert als Antwort auf die letzte Formularübergabe abgerufen wird.

Stellen Sie sicher, dass Sie den CSRF-Wert aktualisieren oder die Seite neu laden, wodurch der CSRF-Wert automatisch aktualisiert wird.

In Ihrem PHP-Code erstellen Sie einen neuen CSRF-Wert mit dem Code.

$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)); 

und die $ csrf Daten als Antwort der letzten Ajax-Vorlage von Formular senden.

Jetzt aktualisieren Sie die CSRF des gesamten Formulars mit Javascript.

Sie können das so tun, innerhalb der Erfolgsfunktion.

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

Cool. Wie reparierst du das? –

+0

Stellen Sie sicher, dass Sie den CSRF-Wert aktualisieren, oder laden Sie die Seite erneut, um den CSRF-Wert automatisch zu aktualisieren. –

+0

wie csrf Wert zu meinem Controller mit Ajax senden –

Verwandte Themen