您必须调用
e.PreventDefault();,这是正确的,但您还必须处理来自回调函数的响应,而事实并非如此。回调带有一些参数,但是第一个是您感兴趣的参数,它是服务器的响应。我将其表示
r如下:
$(document).ready(function(){ $('#submit').click(function(e){ e.preventDefault(); var msg = $('#message').val(); $.post("<?php echo base_url(); ?>message/add", {message: msg}, function(r) { //do something with r... log it for example. console.log(r); }); });});我也删除了
$.("#content").load(...);。当第一个请求完成时,这实际上将执行 另一个 AJAX请求。现在,检查您的控制器…请不要使用$
_POST。CodeIgniter为您提供输入库的
$this->input->post()一部分。如果启用了全局XSS过滤,则也不必xss清理它。您可以通过以下方式逐个清理:
config/config.php``$this->input->post('name',true);我建议改为:
function add(){ $m = $this->input->post('message', true); if($m){ $this->Message_model->add($m); }}


