2017-07-15 4 views
0

Hilfe nötig,über Ajax in CakePHP 3.4 mit CRSF und Sicherheitskomponenten aktiviert

Ich möchte in der Lage, ein Formular über Ajax mit einer Steuerung für die Verarbeitung zu senden, während die CRSF und Sicherheitskomponenten aktiviert sind in der App gesendet Form Controller (Cake PHP 3.4). Ich schätze jede Hilfe, die ich bekommen kann. Dank

+0

ich denke, diese Komponenten nur versteckte Felder erstellen. Haben Sie versucht, die versteckten Felder in Ihre Ajax-Anfrage aufzunehmen? Ich bin mir nicht sicher, ob das funktioniert, aber es ist es wert, es zu versuchen. – systematical

+0

versuchen Sie diese Antwort [So überprüfen Sie CSRF-Token mit AJAX und CakePHP 3] (https://stackoverflow.com/questions/33994845/how-to-check-csrf-token-user-ajax-and-cakephp-3-when -user-is-not-logged-in/35238944 # 35238944) Das CSRF-Token ist im Cookie namens csrfToken verfügbar, also lies dieses Token in deinem Javascript und setze den X-CSRF-Token-Header für deine AJAX-Anfrage. Das CsrfCompoment wird die Überprüfung durchführen. – eclaude

Antwort

0

Um eine Ajax-Anforderung zuerst durch den Kopf Anforderung die csrf Token senden müssen zu senden, wie in der Dokumentation angegeben (link)

Sie benötigen ein Cookie Leser für Javascript erstellen oder (wie zu verwenden: js-cookie)

Dies ist ein Beispiel mit einem jquery ajax-Aufruf und js-cookie:

$.ajax({ 
    url: '<?php echo $this->Url->build(['controller' => 'Foo', 'action' => 'bar'])?>', 
    beforeSend: function(xhr){ 
     xhr.setRequestHeader('X-CSRF-Token', Cookies.get('csrfToken')); 
    } 
}); 
Verwandte Themen