使用带有CodeIgniter URL问题的$.post


Using $.post with CodeIgniter URL issue

我在CodeIgniter中有一个URL为http://127.0.0.1/FOLDER/data/getList的页面。

在那一页上,有肠炎的名单。在该列表中,每个项目中都有一个链接,通过单击该链接,我需要使用$.postjQuery获取一些数据。

我用过这个代码:

$(".class_name").click(function() {
    $val = $(this).attr('val')
    $.post("class/func", {val:$val}, function(data) {
        alert(data);
    });
});

问题在于要与$.post一起使用的URL。

如果我使用"/class/func",它会将请求发送到http://127.0.0.1/class/func(FOLDER未进入)

如果我使用"class/func",它会将请求发送到http://127.0.0.1/FOLDER/data/class/func(此处插入的数据是当前页面的类)

我应该如何解决此错误?我应该使用<?php echo base_url() ?>class/func吗;这是正确的做法吗?

如果您的JavaScript代码位于视图中的<script></script>之间:

$.post("<?php echo site_url("class/func") ?>", {val:$val}, function(data) {
    alert(data);
});

如果您的JavaScript位于单独的.js文件上:

在页面的页脚:

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

然后:

$.post(baseUrl + "index.php/class/func", {val:$val}, function(data) {
    alert(data);
});

替代方案:

为您的商品设置数据属性

<a href="#nogo" data-ajaxurl="<?php echo site_url("controller/funct") ?>" class="classname">Go!</a>

然后:

$.post($(this).data("ajaxurl"), {val:$val}, function(data) {
    alert(data);
});

我有一个单独的js文件,我必须从中调用控制器"Verifypass.php"中的函数

$.post( "verifypass", { pass: $("#password").val() }, function(data){

});

这对我来说不起作用,所以我所做的只是在控制器名称的开头添加index.php作为:

$.post( "index.php/verifypass", { pass: $("#password").val() }, function(data){

});

然后就奏效了。