使用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配置有关。
提前致谢
答案 0 :(得分:1)
<?php URL::base()?>reports/xml
这可能会返回http://www.yoursite.comreports/xml aka,404。
将其更改为:
<?php URL::base()?>/reports/xml