سؤال

لدي نموذج مخصص مع إجراء يستدعي وحدة التحكم الخاصة بي ، وأود منع إعادة التوجيه والبقاء على الصفحة حيث يتم إرسال النموذج ولكن عندما أحاول إضافة حرف بدل في إجراء فهرس وحدة التحكم الخاصة بي ، أحصل على'الكثير من أخطاء إعادة التوجيه'

$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>

هل هناك طريقة أفضل لإرسال هذا النموذج دون إعادة التوجيه إلى وحدة التحكم.

هل كانت مفيدة؟

المحلول

لا تتضمن الإجابة إجبار الماجنتو على البقاء على الصفحة منذ ذلك الحين

$this->_redirectReferer()

يتعامل مع هذا السلوك بشكل جيد بالنسبة لنا.كانت المشكلة نفسها بسبب بعض الصفحات التي تحتوي على عنوان ورل آمن مما يعني أن الماجنتو سيعيد التوجيه عند إرسال النموذج https كان الحل هو التغيير:

<?php echo Mage::getUrl('locale/switch'); ?>

إلى

<?php echo Mage::getUrl('locale/switch',array('_secure'=>true)); ?>

الآن يمكن تقديم النموذج عبر عناوين ورل آمنة وغير آمنة دون إعادة توجيه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top