Как я могу помешать перенаправлению через пользовательский контроллер?
-
13-12-2019 - |
Вопрос
У меня есть пользовательская форма с действием, которое вызывает мой модульный контроллер, я хотел бы предотвратить перенаправить и остаться на странице, где представлена форма, но когда я пытаюсь добавить подстановочный знак в моем индексе контроллера, я получаю действие«Слишком много перенаправленных ошибок»
$this->_redirect('*/*/');
Я также попробовал
$this->_redirectReferer();
.
и
$this->_redirectReferer('*/*/');
.
Вот мое индексное действие в моем контроллере модуля
public function indexAction()
{
$params = Mage::app()->getRequest()->getPost();
if (isset($params['country'])) {
$this->setCountry((string)$params['country'], isset($params['hide']));
}
if (isset($params['currency'])) {
$this->setCurrency((string)$params['currency']);
}
$this->_redirectReferer();
}
.
и ниже моя форма, какие сообщения для моего контроллера
<form method="post" action="<?php echo Mage::getUrl('locale/switch'); ?>">
....
</form>
.
Есть ли лучший способ отправить эту форму без перенаправления на контроллер.
Решение
Ответ не включает в себя форсирование Magento, чтобы остаться на странице, поскольку
$this->_redirectReferer()
.
Хорошо обрабатывает это поведение для нас.Сама проблема была связана с некоторыми страницами, имеющими безопасный URL, который означал, что Magento будет перенаправлять, когда форма была представлена через https
, решение было изменено:
<?php echo Mage::getUrl('locale/switch'); ?>
.
к
<?php echo Mage::getUrl('locale/switch',array('_secure'=>true)); ?>
.
Теперь форма может быть отправлена над безопасными и неустойчивыми URL-адресами без перенаправления