2016-12-08 17 views
0

私のコントローラでcsrfの検証を有効にしました。しかし、数分後にフォームを送信している間にcsrfトークンが期限切れになり、csrfトークンをajax.Please経由で渡していましたこの問題を乗り越えるための解決策を私に提供してください。以下はyii2でcsrfの検証が動作しない

私のサンプルコード

コントローラ

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

JSページ

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

Ajax呼び出し

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

こんにちは! ActiveFormをレンダリングしようとしましたが、このフォームのシリアル化されたバージョンをAjaxリクエストで送信しましたか? – naffiq

+0

こんにちは、私たちはActiveFormではなくHTMLフォームを使用しています –

答えて

0

は、それはすべきではない:

var values = { 
    'id': id, 
    'cpcode': cpcode, 
    yii.getCsrfParam(): yii.getCsrfToken() 
}; 
関連する問題