2016-12-08 1 views
0

J'ai activé la validation csrf comme vrai dans mon controller.Mais après quelques minutes, en soumettant le formulaire, le jeton csrf a expiré et a reçu un mauvais message de requête, même si je passe le jeton csrf par ajax.Please fournissez-moi une solution pour surmonter ce problème.Validation csrf dans yii2 ne fonctionne pas

Ci-dessous mon exemple de code

Contrôleur

public function beforeAction($action) 
    { 
     $this->enableCsrfValidation = true; 
     return parent::beforeAction($action); 
    } 

JS Page

var csrfToken = $('meta[name="csrf-token"]').attr("content"); 

Ajax appel

var values = { 
     'id'  : id, 
    'cpcode' : cpcode, 
    '_csrf' : csrfToken 

    }; 
    $.ajax({ 
    type  : 'POST', //Method type 
    url  : baseurl +'/site/test', 
    data  : values, 
    dataType : 'json', 
    success : function(data) 
     { 

     } 
    } 
); 

main.php

<head> <?= Html::csrfMetaTags() ?></head> 
+0

Salut! Avez-vous essayé de rendre un ActiveForm et d'envoyer une version sérialisée de ce formulaire via une requête Ajax? – naffiq

+0

Bonjour, nous utilisons le formulaire HTML pas ActiveForm –

Répondre

0

devrait-il pas:

var values = { 
    'id': id, 
    'cpcode': cpcode, 
    yii.getCsrfParam(): yii.getCsrfToken() 
};