Как сделать Ajax запрос к плагину
Есть плагин для приложения Site. Работает в личном кабинете. При submit-е формы отправляется запрос:
$.getJSON('my/artikul/444/', function(json) {
console.log(json);
});
Контроллер лежит в папке плагина lib/actions/frontend/siteArtikulPluginFrontendAdd.action.php
<?php
class siteArtikulPluginFrontendAddAction extends waJsonAction
{
public function execute()
{
$this->response = array(
'valA' => 'value first',
'valB' => 'velue second',
);
}
}
Правила маршрутизации плагина
<?php
return array(
'artikul/add/' => 'frontend/add'
);
Находясь в личном кабинете, адрес в строке: http://localhost/wa/index.php/my/
В результате запроса getJSON к контроллеру ошибка: GET http://localhost/wa/index.php/my/my/artikul/444/ 404 (Not Found)
Склоняюсь к тому, что неправильно назначил маршрутизацию.
$.getJSON('my/artikul/444/', function(json) {
console.log(json);
});
Контроллер лежит в папке плагина lib/actions/frontend/siteArtikulPluginFrontendAdd.action.php
<?php
class siteArtikulPluginFrontendAddAction extends waJsonAction
{
public function execute()
{
$this->response = array(
'valA' => 'value first',
'valB' => 'velue second',
);
}
}
Правила маршрутизации плагина
<?php
return array(
'artikul/add/' => 'frontend/add'
);
Находясь в личном кабинете, адрес в строке: http://localhost/wa/index.php/my/
В результате запроса getJSON к контроллеру ошибка: GET http://localhost/wa/index.php/my/my/artikul/444/ 404 (Not Found)
Склоняюсь к тому, что неправильно назначил маршрутизацию.
Эта тема в архиве. Добавление комментариев к ней отключено.










1 ответ
Запрос из js имеет вид (code-параметр, определенный в маршрутизации как <artikul_id>):
$.getJSON('artikul/add/'+code, function(json) {
console.log(json.data.art);
});
Маршрутизация (routing.php):
<?php
return array(
'my/artikul/add/<artikul_id>' => 'frontend/add'
);
Вместо экшена запрос ловит контроллер siteArtikulPluginFrontendAdd.controller.php в папке lib/actions
<?php
class siteArtikulPluginFrontendAddController extends waJsonController
{
public function execute()
{
$artikul_id = waRequest::param('artikul_id');
$this->response = array(
'art' => $artikul_id,
);
}
}