Вызов $ .ajax для контроллера Kohana 3.2 возвращает 404 - PullRequest
1 голос
/ 23 марта 2012

Использование Kohana 3.2, JQuery 1.4.4, браузера Firefox, Попытка заставить вызов $ .ajax работать, но он всегда возвращает ошибку 404

вот моя конфигурация Я использую URL-адрес 127.0.0.1/xyz/kdi

мой URL :: base () равен xyz / kdi -> выполняет действие Index / welcome.php index

мой маршрут начальной загрузки:

Route::set('default', '(<directory>(/<controller>(/<action>(/<id>))))')
->defaults(array(
    'directory' => 'reports',
    'controller' => 'welcome',
    'action'     => 'index',
    ));

контроллеры:
1. контроллер / отчеты / welcome.php
2. контроллер / отчеты / xml.php

просмотров:
1. views / reports / mainReport.php (вызывается welcome.php)
2. views / reports / xml.php

Прекрасно работает следующий запрос к контроллеру xml в mainReport.php.

<?php echo Request::factory('reports/xml/index/77')->execute(); ?>

Вот вызов $ .ajax, который я использую в представлении:

$.ajax({
type:'POST',
url: '<?php URL::base()?>reports/xml',  // <--- this is the problematic line
cache: false,
dataType:'json',
data:{params:param},
success: function(resultArray, textStatus, XMLHttpRequest){
    alert('success');
    }
});

мой контроллер XML выглядит так

class Controller_Reports_Xml extends Controller_BlankLayout {
    public function __construct(Request $request, Response $response){
        parent::__construct($request, $response);
    }
    public function action_index(){
        if ($this->request->is_ajax()) {
            $params = json_decode($_POST['params']);
            echo Debug::vars($params);
            //echo 1/0;
            $this->auto_render = FALSE;
            }else{
                $id = $this->request->param('id');
                $this->template->content = 'success to receive the param '.$id;
            }
    }
}

Почему я получаю 404, поиск во всем Интернете показывает, что вызов ajax правильный, что заставляет меня думать, что это связано с конфигурациями Kohana.

Заранее спасибо

1 Ответ

1 голос
/ 23 марта 2012
<?php URL::base()?>reports/xml  

Это, вероятно, возвращает http://www.yoursite.comreports/xml aka, 404.

Измените его на:

<?php URL::base()?>/reports/xml
...