Codeigniter base_url()对ajax无法正常工作

时间:2014-12-11 10:36:11

标签: php jquery ajax codeigniter

在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);
        } 
   });

请帮助解决此问题。 感谢

4 个答案:

答案 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>