EDIT:用 .htaccess 删除“index.php”会创建我刚刚发现的这个问题。现在我要着手解决它。
EDIT: 问题解决了。 JavaScript 是错误的:url: "/login/"
它需要一个尾部斜杠。
ORIGINAL:在我的主页视图中,我创建了一个表单:
<div id="login"><?php
echo form_open('login');
echo form_input('username', 'Username', 'id="username"');
echo form_submit('submit', 'Login', 'id="login_submit"');
echo form_close();
?></div>
使用一些基本的 javascript(感谢 Nettuts)我尝试实现一些 ajax:
$('#login_submit').click(function() {
var form_data = {
username: $('#username').val(),
password: $('#password').val()
};
$.ajax({
url: "/login",
type: 'POST',
data: form_data,
success: function(msg) {
$('#login').html(msg);
}
});
return false;
});
如您所见,它将表单值发送到登录控制器。
class Login extends CI_Controller {
function index()
{
if($this->input->is_ajax_request())
{
echo '<h2>Login succeeded with ajax</h2>';
}
else
{
echo '<p>But your ajax failed miserably</p>';
}
}
}
问题是,它不起作用。功能$this->input->is_ajax_request()
输出假。忽略这一点,所有其他帖子数据都会丢失。什么都没有完成。
我究竟做错了什么?