使用codeigniter将ajax相对路径转换为绝对路径


Convert ajax relative paths to absolute paths with codeigniter

我正在使用codeigniter和jquery ajax。我在wamp上的本地应用程序(运行良好)和部署的应用程序(不太好)之间存在一些不一致。建议的修复方法是将ajax的相对路径转换为ajax的绝对路径,因此看起来像:

url: "YOURBASEPATH/AjaxController/update",
location.href = "YOURBASEPATH/pan_controller/my_detail";

这是我现在的代码:

$.ajax({a
     type: "POST",
     url: "AjaxController/update",
     data:{ i : searchIDs, m : message },                        
     dataType: 'json',
     .done(function() { 
          alert("REFRESHING..");
          location.href = "pan_controller/my_detail";
     });
   }
})

我一直在使用https://philsturgeon.uk/blog/2009/09/Asset-handling-in-CodeIgniter-with-the-BASE-tag一段时间。这和硬编码基本url是一样的吗?如果不是的话,我应该如何在不打乱其他路线和部署能力的情况下做到这一点,这是相对路线的优势。

在标题部分只需添加以下脚本。

<script type="text/javascript">
    var BASE_URL = "<?php echo base_url();?>";
</script>

然后在Ajax代码中使用BASE_URL作为变量。平均值:

url: BASE_URL+"AjaxController/update", location.href = BASE_URL+"pan_controller/my_detail";

$.ajax({a
     type: "POST",
     url: BASE_URL+"AjaxController/update",
     data:{ i : searchIDs, m : message },                        
     dataType: 'json',
     .done(function() { 
          alert("REFRESHING..");
          location.href = BASE_URL+"pan_controller/my_detail";
     });
   }
})

非常简单的解决方案。