@evilelf
Тупой, руки из жопы, кодю за зп и т.п. и т.д.

Как в yii исправить ошибку 400 при POST запросе?

При POST запросе происходит ошибка 400.
Вся проблема в том, что при на сайте есть редирект с / на /ru/
Но запрос делается на адрес: test.ru/ru/page

Если отправить обычный GET, то всё норм.
А если POST то 400.

Кто сталкивался и как исправить?

Yii 1.1.16
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
@evilelf Автор вопроса
Тупой, руки из жопы, кодю за зп и т.п. и т.д.
Определил проблему. У меня каждый POST требует CSRF.

Как вы думаете, как правильней запрещать требовать CSRF при POST?

Решение проблемы:
Сделать белый список серверов с которых можно получать POST без CSRF.
Сделать класс, наследовать CHttpRequest, указать до него путь в конфиге, и переопределить validateCsrfToken.
У меня получилось так:
public function validateCsrfToken($event){
        $request = Yii::app()->request;
        if(in_array($_SERVER['REMOTE_ADDR'], $request->whiteListIP)){
            $request->enableCsrfValidation=false;
            return;
        }
        parent::validateCsrfToken($event);
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы