使用$ .post和CodeIgniter URL问题

时间:2015-02-14 17:39:52

标签: php jquery codeigniter

我在CodeIgniter中有一个网页http://127.0.0.1/FOLDER/data/getList

在该页面上,有一个肠道列表。在该列表中,每个项目都有一个链接,通过点击我需要使用$.post jQuery获取一些数据。

我使用过这段代码:

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

问题在于与$.post一起使用的网址。

如果我使用"/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;这是正确的做法吗?

2 个答案:

答案 0 :(得分:1)

如果您的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);
});

答案 1 :(得分:0)

我有一个单独的js文件,我必须在控制器“Verifypass.php”中调用该函数。我在$ _post()中有这样的东西:

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


});

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

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



});

然后它起作用了。