Проблема с доступом при Ajax запросе

Доброго времени суток. Я не есть экспертом в работе с Webasyst, но несколько суток ищу способ решить следующую прблему.

Есть контроллер
<?php
class shopFrontendGetUpdatedPriceController extends waJsonController {

public function execute(){
$post = waRequest::post('data');
.....
$this->response = array(
'price' => number_format($data, 2, ',', ''),
'config_id' => $id
);
$this->getResponse()->addHeader('Content-type', 'application/json');
}
}

и соответственно в шаблоне вызываю аякс обращения к этому экшену

$.ajax({
url: '/webasyst/shop/?module=Frontend&action=getUpdatedPrice',
type: 'POST',
data: filterString,
async: false,
success: function(respons){
//Using respons
});

В результати для гостей (не авторизированых пользователей) получаю ответ
Session has expired. Please reload this page and log in again.<script>window.location.reload();</script>

для авторизированых - все работает нормально

Подскажите пожалуйста как можно решить полученую проблему.
Спасибо!

1 ответ

  • 0
    Михаил Ушенин Webasyst 3 сентября 2014 01:47 #
    Вы обращаетесь к модулю backend (см. фрагмент /webasyst/ в URL запроса). А к бекенду имеют доступ только авторизованные пользователи. Чтобы доступ к контроллеру имели все посетители сайта, обращайтесь к контроллеру фронтенда. Если вы написали свой контроллер, который положили в директорию lib/ магазина, то этого сделать не получится без редактирования оригинального файла маршрутизации магазина. В этому случае лучше оформит контроллер в виде плагина: http://www.webasyst.ru/developers/docs/shop-plugin-tutorial/ (см. секцию "2. Обработка запросов").

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите