在ajax中使用base_url()来获取codeigniter项目中的from数据库。给定base_url就像http://domainname.com。它工作正常。如果我可以在地址栏中键入我的网址http://www.domainname.com,那么它无效。代码是
$.ajax
({
type: "POST",
url: base_url+'autocomplete/get_caste_list',
data: {religion:$('#religion').val(),'csrf_test_name': csrf_value},
cache: false,
success: function(html)
{
$("#caste").html(html);
}
});
请帮助解决此问题。 感谢
答案 0 :(得分:5)
在我看来,最好的解决方案是:
只需在HTML的标题部分添加以下脚本即可。
<script type="text/javascript">
var BASE_URL = "<?php echo base_url();?>";
</script>
然后在您的Ajax代码中使用BASE_URL
作为变量。的意思是:
$.ajax
({
type: "POST",
url: BASE_URL+'autocomplete/get_caste_list',
data: {religion:$('#religion').val(),'csrf_test_name': csrf_value},
cache: false,
success: function(html)
{
$("#caste").html(html);
}
});
按以下方式使用您的基本网址:
$config['base_url'] = "http://{$_SERVER['HTTP_HOST']}/";
非常简单的解决方案。
答案 1 :(得分:0)
base_url()是CodeIgniter(PHP)函数,
您将其视为javascript变量。
更改为:
url: '<?php echo base_url();?>autocomplete/get_caste_list',
答案 2 :(得分:0)
您正在使用php变量作为javascript。
这是使用它的正确方法:
$.ajax
({
type: "POST",
url: '<?=base_url()?>autocomplete/get_caste_list',
data: {religion:$('#religion').val(),'csrf_test_name': csrf_value},
cache: false,
success: function(html)
{
$("#caste").html(html);
}
});
答案 3 :(得分:0)
您必须在头文件中声明var base_url
<script>
var base_url = "<?php echo base_url();?>";
</script>