我在CodeIgniter上运行静态页面的服务,现在我想使用Ajax调用使其动态化,但Ajax调用总是返回404错误(由错误部分的警报定义)。可以访问控制器的索引方法。只有_get_procs方法返回404。
我的Javascript:
$(document).ready(function(){
base_url = '<?= base_url() ?>';
$('#btnAjax').click(function(){
alert("AJAX");
$.ajax({
url: base_url + 'general-data/_get_procs',
type: 'POST',
data: {'period': '1'},
dataType: 'json'
}).success(function(response){
alert(response);
}).error(function(e){
alert("Error");
});
});
});
我的控制器:
function _get_procs(){
$period = $this->input->post('period');
echo json_encode("OK");
}
答案 0 :(得分:1)
来自@Dimi的评论告诉我发生了什么:在功能开始时使用下划线&#39;名称,例如_function_one
无法正常工作; function_one
确实有效,使CodeIgniter中断。
我提出的解决方案是将函数重命名为格式function_one
(get_procs
,就我而言)并在routes.php
配置文件上创建规则:
$route['controller/_get_procs'] = 'controller/get_procs';
这是一种解决方法,可以在不更改CodeIgniter的默认配置的情况下使其工作。我不知道是否还有其他办法。
正如@ cssBlaster21895所指出的,CodeIgniter会跟进PHP编码样式(参见更多here),它将_function
确定为私有函数。