我使用Ajax对我的一个控制器使用简单的POST,但是在我的开发工具中似乎永远无法找到控制器。我收到了错误
POST http:// localhost:8888/time.php/checkit 404 (Not Found)
我不确定这是否与CodeIgniter或.htaccess
文件的路由有关。
我的Ajax调用如下:
$("#submittodo").click(function () {
$.ajax({
url: 'time.php/checkit',
type: "POST",
data: {name: $(this).val()},
success: function (data) {
alert(data);
}
});
});
答案 0 :(得分:1)
你需要在你的网址上加上base_url():
$("#submittodo").click(function () {
$.ajax({
url: '<?php echo base_url()?>time.php/checkit',
type: "POST",
data: {name: $(this).val()},
success: function (data) {
alert(data);
}
});
});
另外,检查一下你的配置文件,如果你将$ config [&#39; csrf_protection&#39;]设置为TRUE,你还需要获得这样的csrf令牌:
var post_data = {
'name': $(this).val(),
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
};
$("#submittodo").click(function () {
$.ajax({
url: '<?php echo base_url()?>time.php/checkit',
type: "POST",
data: post_data,
success: function (data) {
alert(data);
}
});
});
答案 1 :(得分:0)
如果您使用CI,则需要遵循URL结构,例如:domain。 COM /控制器/ method.c 在你的情况下:
URL : '<?Php echo base_url( ) ?>time/checkit',
请注意,控制器名称后面没有.Php。并使用绝对URL。
答案 2 :(得分:0)
试试这个
$("#submittodo").click(function () {
$.ajax({
url: '<?Php echo base_url(); ?>time/checkit',
type: "POST",
data: {name: $(this).val()},
success: function (data) {
alert(data);
}
});
});