Php 我在$config[';baseurl';]中包含了while中的目录,但在发送AJAX请求时,我必须再次写入此目录

Php 我在$config[';baseurl';]中包含了while中的目录,但在发送AJAX请求时,我必须再次写入此目录,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我已经在localhost/CodeIgniter中安装了CodeIgniter,并在配置文件中写入了相同的路径:$config['base\u url']='http://localhost/CodeIgniter/“。现在我需要将AJAX请求发送到 在ajax请求中使用url/register/user\u register时,它不起作用,但在使用/CodeIgniter/register/user\u register时,它起作用 我不想每次在本地主机上工作时都使用/CodeIgniter

我已经在localhost/CodeIgniter中安装了CodeIgniter,并在配置文件中写入了相同的路径:
$config['base\u url']='http://localhost/CodeIgniter/“
。现在我需要将AJAX请求发送到

在ajax请求中使用url
/register/user\u register
时,它不起作用,但在使用
/CodeIgniter/register/user\u register
时,它起作用

我不想每次在本地主机上工作时都使用
/CodeIgniter/
目录,因为当我交付项目时,它肯定不在CodeIgniter目录中。因此,我必须在发送ajax请求的每一个地方都对其进行更改

我正在寻找CodeIgniter提供的一种方法,以避免每次都使用这个目录,并定义它一次,以便在交付项目时可以轻松地更改它

不是这样的

                        $.ajax({

                        url :  "/register/user_register",
                        type: 'POST',
                        data: formData,
                        contentType: false,
                        processData: false,
                        success: function(data){
                            alert(data);
                        }


                        });
                        $.ajax({

                        url :  "/CodeIgniter/register/user_register",
                        type: 'POST',
                        data: formData,
                        contentType: false,
                        processData: false,
                        success: function(data){
                            alert(data);
                        }


                        });
但是这样工作

                        $.ajax({

                        url :  "/register/user_register",
                        type: 'POST',
                        data: formData,
                        contentType: false,
                        processData: false,
                        success: function(data){
                            alert(data);
                        }


                        });
                        $.ajax({

                        url :  "/CodeIgniter/register/user_register",
                        type: 'POST',
                        data: formData,
                        contentType: false,
                        processData: false,
                        success: function(data){
                            alert(data);
                        }


                        });

您可以使用JavaScript变量在客户端存储
$config['base\u url']
变量。然后在AJAX请求中使用它,如:

$.ajax({
    /*...*/
    url: base_url + "mycontroller",
    /*...*/
});
按以下方式设置变量:

<head>
    <!-- ... -->
    <script>var base_url = "<?= $config['base_url']; ?>";</script>
    <!-- ... -->
</head>

var base_url=“”;

注意:在本例中,
替换

我不熟悉CodeIgniter,但您的docroot是否指向CI项目的根?最好将其指向公共文件夹,例如项目中的
/www
/public
。我同意
/CodeIgniter
不属于URL。感谢您的关注。在哪里检查docroot?您能指导我吗?docroot设置在您的web服务器中,例如Apache。例如,如果您的项目文件夹是
/var/www/
,而您的CodeIgniter文件夹位于
/var/www/CodeIgniter
,则
/var/www
是您的docroot。从web服务器的角度来看,它本质上是最顶层的文件夹。可以向您展示如何更改它,但这取决于您的操作系统和特定的Apache配置。嗨,Nic我真的很感谢您的指导,但有没有办法将其放入配置文件或在codeIgniter结构中定义?@yousaf,没有,因为您的Javascript无法直接与PHP服务器通信。但这并不重要,因为您正在将配置中的值打印到javascript变量中,如果您更改该值,它只会将新值打印到变量中,并且仍然有效。好的。。我明白,但问题是它不能从localhost开始使用完整的Url。。。它从CodeIgniter/开始工作……通常您直接访问服务器,它应该工作。检查以确保您没有忘记端口或其他内容。不,它只是echo语句,当我将此url放入浏览器时,它正在工作