Kohana 3.2控制器的$ .ajax调用返回404

时间:2012-03-22 23:11:34

标签: jquery ajax json kohana-3 php

使用Kohana 3.2,JQuery 1.4.4,Firefox浏览器, 试图让$ .ajax调用工作,但它总是返回404错误

这是我的配置 我正在使用的URL是127.0.0.1/xyz/kdi

我的网址:: base()是xyz / kdi - >执行Reports / welcome.php索引操作

我的Bootstrap路线:

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

控制器:
 1. controller / reports / welcome.php
 2. controller / reports / xml.php

的观点:
 1. views / reports / mainReport.php(由welcome.php调用)
 2. views / reports / xml.php

将以下请求放在mainReport.php中的控制器xml中效果很好。

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

以下是我在View中使用的$ .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 个答案:

答案 0 :(得分:1)

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

这可能会返回http://www.yoursite.comreports/xml aka,404。

将其更改为:

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