Ошибка 400 (CRSF) при AJAX из фрейма

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Agapofff
Сообщения: 1
Зарегистрирован: 2022.02.12, 19:11

Ошибка 400 (CRSF) при AJAX из фрейма

Сообщение Agapofff »

Всем привет!

Прошу помощи: голову сломал.

Есть сайт, в нём страница из двух частей: ActiveForm с набором полей, обёрнутая в pjax, - и пустой div, в который догружается информация после обработки формы.
То есть, пользователь находится на странице, заполняет поля формы (стандартный контроллер с actionIndex и моделью ActiveRecord), отправляет форму, pjax-контейнер перезагружается, после чего происходит ajax-запрос к другому action того же контроллера, который получает вторую часть страницы по renderAjax, - и этот контент грузится в пустой div.

Если открывать эту страницу в браузере, всё работает отлично: и форма правильно обрабатывается, и последующий ajax-запрос корректно отдаёт вторую часть страницы.

Но эта страница должна загружаться в iframe на другом сайте (фактически, это встраиваемый виджет).

Так вот, при интеграции этой страницы с помощью iframe на другом сайте, форма отрабатывает корректно, - а вот ajax-запрос, который выполняется после обработки формы, возвращает ошибку 400 из-за несоответствия csrf.

Проверил: csrf при ajax-запросе передаётся корректно.

Отключение csrf-валидации, разумеется, спасает ситуацию, - но я бы не хотел этого делать.

В чём может быть проблема?
Ответить