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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top