You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CodeIgniter框架时jQuery $.post无法向URL传递数据

解决jQuery $.post 不传递数据的问题

看起来你遇到的问题很典型,切换模板后AJAX请求突然失效,我帮你梳理几个最可能的原因和对应的解决方案:

1. 表单按钮的默认提交行为中断了AJAX请求

你当前用的是自定义的<btn>标签,这不是标准HTML元素,而且放在<form>里的按钮默认类型是submit,点击后会触发表单的默认提交(页面刷新),导致你的AJAX请求还没完成就被中断了,自然不会传递数据。

解决方案:

  • 把<btn>改成标准的<button>标签,并且明确设置type="button",避免触发表单提交;
  • 或者在点击事件里手动阻止默认行为。

修改后的按钮代码:

<button class="btn btn-sm btn-azure btn-icon" id="addvotemate" type="button">
  <i class="fa fa-fw fa-users"></i> Add Votemate
</button>

同时,在jQuery的click事件里加上e.preventDefault()做双重保险:

$("#addvotemate").click(function(e) {
  e.preventDefault(); // 阻止默认提交行为
  // 后续原有代码不变...
});

2. 检查jQuery是否正确加载

新模板可能没有正确引入jQuery,或者引入顺序在你的自定义脚本之后,导致$未定义,整个脚本根本没执行。

验证方法:打开浏览器控制台(F12),输入$回车,如果返回jQuery相关对象说明加载正常,否则需要调整jQuery的引入位置,确保它在你的自定义脚本之前加载。

3. CodeIgniter CSRF 保护拦截了请求

CodeIgniter 3默认可能开启了CSRF保护,AJAX请求需要带上CSRF Token才能正常提交,否则服务器会拒绝请求,导致数据无法传递。

解决方案:
在你的表单里添加CSRF隐藏字段(利用CodeIgniter的内置函数):

<form id="votreq" name="form" method="POST">
  <?php echo form_hidden($this->security->get_csrf_token_name(), $this->security->get_csrf_hash()); ?>
  <!-- 其他原有隐藏字段不变 -->
</form>

然后在$.post请求里,把这个Token也一起传递:

$.post("<?php echo site_url('user/addvotemate'); ?>", {
  vuniq_userid1: vuniq_userid,
  vmuniq_userid1: vmuniq_userid,
  <?php echo $this->security->get_csrf_token_name(); ?>: $("input[name='<?php echo $this->security->get_csrf_token_name(); ?>']").val()
}, function() {
  // 原有回调代码不变
});

4. 验证变量是否正确获取到值

有时候新模板的Session或者$pid变量可能有问题,导致隐藏字段的值为空,传递空数据自然没效果。

验证方法:在click事件里添加console.log,查看变量值:

var vuniq_userid = $("#vuniq_userid").val();
var vmuniq_userid = $("#vmuniq_userid").val();
console.log("vuniq_userid:", vuniq_userid);
console.log("vmuniq_userid:", vmuniq_userid);

打开浏览器控制台,点击按钮查看输出,如果值为空,需要检查$_SESSION['uniqueID']和$pid是否正确赋值。

最后建议

按上面的顺序逐一排查,最可能的是按钮的默认提交行为问题,先改这个试试。如果还是不行,打开浏览器的网络面板(F12 -> Network),查看$.post请求的详情,看看请求是否发送,参数是否携带,服务器返回什么状态码,这些信息能帮你进一步定位问题。

内容的提问来源于stack exchange,提问作者SholleyonlineJava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:22:48