Ich habe einen Frontendcontroller mit 2 Actions, welche per AJAX / Einkaufswelten Widget aufgerufen werden. Ich habe zum Test in der config.php CSRF deaktiviert und somit funktioniert es.
Mein Plan war dann den CSRF Token in den AJAX Request zu integrieren. Daran scheitere ich im Moment. In der Doku ist immer nur von Formularen die rede.
Was muss ich bei einem AJAX Request tun, wie bekomme ich den Token rein?
grundsätzlich ist das ein Automatismus über themes/Frontend/Responsive/frontend/_public/src/js/jquery.csrf-protection.js - dort werden Ajax-Requests mit den entsprechenden Tokens versehen. Hast du dein jQuery-Plugin vll. zu früh registriert, bspw. einfach im Template? So oder so könnte man da vll. weiter debuggen.
Die JS Datei wird im Plugin über die Bootstrap integriert:
/**
* Provides an ArrayCollection for js compressing
* @param Enlight_Event_EventArgs $args
*
* @return ArrayCollection
*/
public function addJavascriptFiles(\Enlight_Event_EventArgs $args)
{
$js = __DIR__. '/Views/frontend/_resources/javascript/test.js';
return new ArrayCollection(array($js));
}
Das JS bezieht sich auf ein Emotion Widget, welches über die Einkaufswelt geladen wird.
Evt. hängt es ja damit zusammen.
P.S. Trotzdem würde ich auch gerne wissen waurm es ncht über die Whitelist geht? Die ist ja so wie von euch in der Doku beschrieben im Controller eingebunden.
Wie sieht denn dein JS File jetzt aus? Wäre bestimmt auch für andere hilfreich. (Ich frage, weil es ja wohl erstmla nicht direkt funktioniert hat, hast du etwas verändert?)
P.S. Trotzdem würde ich auch gerne wissen waurm es ncht über die Whitelist geht? Die ist ja so wie von euch in der Doku beschrieben im Controller eingebunden.
hi. du musst CSRFWhitelistAware auch implementieren. Dann sollte es auch mit der Whitlist klappen.
use Shopware\Components\CSRFWhitelistAware;
class Shopware_Controllers_Frontend_OttTest extends Enlight_Controller_Action implements CSRFWhitelistAware{
}