AJAX 在 codeigniter 中找不到基础 URL

AJAX in codeigniter doesn't find base URL

我的另一个问题是,代码是否正确,我的 AJAX 请求会到达我的控制器吗?

以下是代码中的相关部分:

我的观点(我在 POST 表单上有这个,因为我想在另一个 table 上发送数据):

<script> var base_url = <?php echo base_url(); ?> </script>

<label for="exampleInputEmail1">Apartament</label>
<select onchange="showUser(this.value)" name ="txtApartament1" class="form-control">
    <?php foreach($getEntry as $value) { ?>
    <option><?php echo $value->apartament ?></option>
    <?php }?>
</select>

在相同的视图中,这是我的 AJAX 部分:

function showUser(str) {
    if (str == "") {
        document.getElementById("txtApartament1").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtApartament1").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", base_url + "usercontroller/ajaxp?q="+str,true);
        xmlhttp.send();
    }
}

这是我的控制器 - usercontroller.php 功能:

public function ajaxp(){
echo "received";
}

我会得到这个错误:

(index):257 Uncaught ReferenceError: base_url is not defined at showUser (localhost/adminigniter1/:257:29) at HTMLSelectElement.onchange (localhost/adminigniter1/:205:89)

我的项目文件名为 codeigniter1!

我没有在 codeigniter 上设置任何配置文件。我是不是该 ?还有什么吗?

这样试试..

1.Load url 助手使用 $this->load->helper('url')applicaiton/config/autoload.php.

2.Set base_url application/config/config.php

中的配置项
$config['base_url'] = 'your_url';

3.In 你的 script.Remove var。因为它创建变量为 local。所以你不能使用内部函数。

base_url = <?php echo base_url();

将它var base_url = <?php echo base_url(); ?>放在showUser()函数中。

更新

var url = base_url + "usercontroller/ajaxp?q="+str; //OR  var url = <?php base_url();?>+"usercontroller/ajaxp?q="+str;

console.log(url);

xmlhttp.open("GET",url,true);
xmlhttp.send();