Come posso impedire un reindirizzamento tramite il controller personalizzato?
-
13-12-2019 - |
Domanda
Ho un modulo personalizzato con un'azione che chiama il mio controller del modulo, vorrei impedire il reindirizzamento e il rimanere sulla pagina in cui il modulo viene inviato ma quando provo ad aggiungere un carattere jolly nell'azione dell'indice del controller ottengo un'Troppi reindirizzamento Errore'
$this->_redirect('*/*/');
Ho anche provato
$this->_redirectReferer();
.
e
$this->_redirectReferer('*/*/');
.
Ecco la mia azione indice nel mio controller del modulo
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();
}
.
e sotto è il mio modulo che pubblica al mio controller
<form method="post" action="<?php echo Mage::getUrl('locale/switch'); ?>">
....
</form>
.
C'è un modo migliore per avere questa forma inviare senza reindirizzare al controller.
Soluzione
La risposta non coinvolge forzando magento per rimanere sulla pagina dal
$this->_redirectReferer()
.
Gestisce questo comportamento piacevolmente per noi.Il problema stesso è dovuto a alcune pagine che hanno un URL sicuro che significava che Magento si reindirizzarebbe quando il modulo è stato inviato su https
la soluzione era cambiare:
<?php echo Mage::getUrl('locale/switch'); ?>
.
a
<?php echo Mage::getUrl('locale/switch',array('_secure'=>true)); ?>
.
Ora il modulo può essere inviato su URL protettivi e non sicuri senza reindirizzamento