如何在jQuery ajax调用中编写CodeIgniter控制器URL



我正在尝试在codeigniter中尝试一个ajax调用,但是如何在URL中编写控制器及其函数名称。

$.ajax({              
     type : "POST",
     url  : "<?php echo base_uri(); ?>/application/controllers/controllerName/FunctionName",
});

在这里,我正在写整个路径,但似乎不对。这还可以还是有更好的方法?预先感谢。

实际上,您应该能够这样称呼它:

$.ajax({
    type : "POST",
    url  : "/controllerName/FunctionName",
});

,但这取决于您的URL结构以及您是否在URL结构中摆脱了index.php。在这种情况下,URL将是"/index.php/controllerName/FunctionName"

     $.ajax({
            type : "POST",
            url  : "<?php echo base_url(); ?>/controllerName/FunctionName"
      });

      $.ajax({
            type : "POST",
            url  : "<?php echo site_url(); ?>/controllerName/FunctionName"
      });

写一些页面顶部的位置,例如,标题部分中的JS代码。

注意:此代码应在您的Ajax方法上方

<script type="text/javascript">
    var base_url = "<?php echo base_url(); ?>";
    function site_url(url){
        var bu = "<?php echo base_url(); ?>";
        url = (url)?url:"";
        return bu + "index.php/" + url;
    }
</script>

然后您可以编写Ajax方法如下:

$.ajax({
          type : "POST",
          url  : site_url("controllerName/FunctionName"),
   });

使用这样的使用

url  : "<?php echo base_url(); ?>index.php/controllerName/FunctionName",

您的代码中的错误

url  : "<?php echo base_uri(); ?>/application/controllers/controllerName/FunctionName",
                          ^1           ^2         ^3
  1. 它应该是base_url不是base_uri
  2. 和3. application文件夹不会在URL中使用。这是一个文件结构。不属于URL。

它的工作正常,因为我还没有删除index.php。

$.ajax({
          url:"<?php echo base_url(); ?>index.php/ajax/hello",
          type:'post',
          data:{
                  "name":name,
                  "email":email,
                  "phone":phone
                },
	      		success:function(data){
	          $("#display").html(data);
	      }
        });

最新更新