用CodeIgniter使用Post进行Ajax调用

时间:2014-07-11 19:22:32

标签: jquery ajax codeigniter post

我使用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);
          }
      });
  });

3 个答案:

答案 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);
          }
      });
  });