Как сделать 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)

Склоняюсь к тому, что неправильно назначил маршрутизацию.

1 ответ

  • 0
    Alexandr Belik 17 ноября 2014 06:19 #
    Вопрос решен.
    Запрос из 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,
    );
    }
    }

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

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