Для предотвращения редиректа при ajax запросе в модальном окне в Yii можно использовать несколько подходов.
Вариант 1: Обновление только части страницы
Один из способов - обновить только часть страницы, которая находится в модальном окне, вместо полной перезагрузки страницы. Для этого можно использовать функцию jQuery AJAX в комбинации с методами Yii.
Вариант 2: Использование параметра в ajax запросе
Еще один способ - использовать параметр в ajax запросе для определения того, что запрос был выполнен через ajax и не требуется редирект. Например, можно передать дополнительный параметр в запросе, который будет указывать на то, что запрос является ajax запросом. При обработке запроса на сервере можно проверить этот параметр и, если он установлен, вернуть нужные данные, не выполняя редирект.
Вариант 3: Использование JSON-ответа
Еще один вариант - использовать JSON-ответ вместо редиректа. Вместо выполнения редиректа на сервере, можно вернуть JSON-ответ, содержащий необходимые данные. В модальном окне можно обработать этот ответ и выполнить соответствующие действия на основе полученных данных, не выполняя редирект.
Вариант 4: Использование специальных методов Yii
Yii предоставляет различные методы и инструменты для работы с ajax запросами, такие как методы renderAjax() для рендеринга представлений в режиме ajax и методы ajaxSubmitButton(), ajaxLink() для отправки ajax запросов. Используя эти методы вместо стандартных, можно предотвратить редирект и выполнить необходимые действия в модальном окне.
Конечный выбор метода зависит от вашего конкретного случая использования и предпочтений. Однако, независимо от выбранного метода, необходимо убедиться, что серверная сторона корректно обрабатывает ajax запросы и возвращает правильные данные для обновления модального окна без редиректа.