문제

내 모듈 컨트롤러를 호출하는 작업이 포함된 사용자 정의 양식이 있습니다. 리디렉션을 방지하고 양식이 제출된 페이지에 머물고 싶지만 컨트롤러 인덱스 작업에 와일드카드를 추가하려고 하면 '너무 많습니다. 오류를 리디렉션합니다'

$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을 통해 양식을 제출할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top