自分のモジュールコントローラーでアクションを呼び出すAJAXリクエストをMagentoブロックで作成します。しかし、このリクエストの応答は302であり、サインインしていない場合は管理者サインインページにリダイレクトします。このリクエストは前面にあり、管理者サインインは必要ありません。
私のJavaScriptコード:
var xmlhttp;
if(typeof XMLHttpRequest !== 'undefined') xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://mac-4.local:8888/magento_sample_1.4.2/index.php/disponibilityshippingicon/disponibility/setcustomeraddressinsession/", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('city=' + jsonAddress['city'] + '&cp=' + jsonAddress['cp'] + '&country=' + jsonAddress['country']);
私のコントローラーコード:
class ColisWeb_DisponibilityShippingIcon_DisponibilityController extends Mage_Adminhtml_Controller_Action
{
public function setcustomeraddressinsessionAction() {
$params = $this->getRequest()->getParams();
Mage::log("ColisWeb - Addresse du visiteur non poussé en session : " . $params['city'] . $params['cp'] . $params['country'], Zend_log::INFO);
if (isset($params['city'], $params['cp'], $params['country'])) {
//new Mage_Customer_Model_Address();
$address = Mage::getModel('customer/address');
$address->setCity($params['city']);
$address->setPostCode($params['cp']);
$session = Mage::getSingleton('core/session');
$session->setData('addressColisweb', $address);
$session->setData('cityAddressColisweb', $params['city']);
$session->setData('postCodeAddressColisweb', $params['cp']);
$session->setData('contryAddressColisweb', $params['country']);
}
else {
}
$this->getResponse()->setHeader('Content-type', 'application/json', true) ;
$result = array( 'status' => '200');
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
}
}
?>
私のMagentoのバージョンは1.4.2です
誰かが私を助けてくれることを願っています。
ご協力いただきありがとうございます!