Как передать x-csrf token в yii2

Пользователь

от forest , в категории: PHP , 8 месяцев назад

Как передать x-csrf token в yii2

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hermina.hauck , 8 месяцев назад

@forest 

В Yii2 можно передать X-CSRF-Token с помощью метода yii.activeForm.data в JavaScript.

  1. Добавьте в модель следующий код:
1
2
3
4
5
6
7
public function beforeValidate()
{
    if (Yii::$app->request->isAjax) {
        Yii::$app->request->headers->set('X-CSRF-Token', Yii::$app->request->csrfToken);
    }
    return parent::beforeValidate();
}


  1. Добавьте следующий код в форму, чтобы отправить X-CSRF-Token с запросом:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$('form#form-id').on('beforeSubmit', function(e) {
    var form = $(this);
    $.ajax({
        url: form.attr('action'),
        type: 'post',
        data: form.serialize(),
        beforeSend: function (xhr) {
            xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
        },
        success: function(data) {
            // handle successful response
        }
    });
    return false;
});


Теперь X-CSRF-Token будет передан с каждым AJAX-запросом.