2017-07-15 5 views
0

Besoin d'aide,Envoi formulaire via ajax dans CakePHP 3.4 avec des composants CRSF et de sécurité a permis

Je veux être en mesure d'envoyer un formulaire via ajax à un contrôleur pour le traitement tandis que les composants CRSF et de sécurité sont activés dans l'App contrôleur (cakephp 3.4). Appréciera toute aide que je peux obtenir. Pour envoyer une demande de paiement ajax vous devez envoyer le jeton CSRF d'abord par la demande de la tête comme indiqué dans la documentation (link)

Vous devez créer ou utiliser un lecteur de cookies pour javascript (comme Merci

+0

Je pense que ces composants il suffit de créer des champs cachés. Avez-vous essayé d'inclure les champs cachés dans votre requête ajax? Je ne suis pas sûr que ça marchera, mais ça vaut le coup d'essayer. – systematical

+0

essayer cette réponse [Comment vérifier le jeton CSRF en utilisant AJAX et CakePHP 3] (https://stackoverflow.com/questions/33994845/how-to-check-csrf-token-using-ajax-and-cakephp-3-when -user-is-not-logged-in/35238944 # 35238944) Le jeton CSRF est disponible dans le cookie nommé csrfToken, lisez donc ce jeton dans votre javascript et définissez l'en-tête X-CSRF-Token pour votre requête AJAX. Le CsrfCompoment fera la vérification. – eclaude

Répondre

0

: js-cookie)

Voici un exemple avec un jquery ajax appel et js-cookie:

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