Решение, которое вы использовали, на самом деле не является решением, оно похоже на то, что если вы не можете открыть замок с помощью ключа, просто снимите замок.
В основном вы получаете 400 Bad Request
, если вы делаете запрос Ajax Post без отправки параметров CSRF, я никогда не сталкивался с такой проблемой, как перенаправление на страницу входа.
Но если ваша проблема решена путем отключения проверки CSRF, вы должны следовать этому методу при выполнении любых запросов AJAX.
В вашей конфигурации вы определяете имя параметра csrf, используя csrfParam
в компоненте request
, подобном этому
'request' => [
'csrfParam' => '_csrf-app',
],
Это может отличаться для вас, если оно уже определено.
Вы должны отправить этот параметр _csrf-app
со значением csrf
в запросе ajax вместе с вашими данными post
. и для получения значения для csrf вы можете использовать метод javascript yii.getCsrfToken()
или Yii::$app->request->csrfToken
, если вы видите через php
.
Посмотрите этот пример вызова, вы можете жестко закодировать имя параметра _csrf-app
или использовать Yii::$app->request->csrfParam
, если ваш скрипт находится внутри файла представления.
$.ajax({
url:'/add',
data:{'_csrf-app':yii.getCsrfToken()}
success:function(data){}
});
Надеюсь, это решит вашу проблему.