jquery - 无法访问通过 jQuery ajax 发送的我的 Post 值

标签 jquery ajax codeigniter post

编辑:使用 .htaccess 删除“index.php”会创建我刚刚发现的这个问题。现在我要解决它。

编辑:问题已解决。 JavaScript 是错误的:url: "/login/" 它需要一个尾部斜杠。

原始:在我的主页 View 中,我创建了一个表单:

<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;
});

如您所见,它将表单值发送到登录 Controller 。

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()输出FALSE。忽略这一点,所有其他帖子数据都会丢失。 什么都没有通过。

我做错了什么?

最佳答案

我认为您的问题可能是您实际上没有发送到正确的脚本。您的 url/login 看起来不会到达 Codeigniter URL(http://domain.com/index.php/login 或 http://domain.com/my_app/index.php/login )。

尝试将 url 更改为 Controller 的完整 url 位置或正确的绝对路径。要么:

url: "http://yourdomain.com/index.php/login",

url: "/my_app/index.php/login",

除非您重写了网址,否则/login 可能无法联系正确的脚本。

关于jquery - 无法访问通过 jQuery ajax 发送的我的 Post 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5855003/

相关文章:

Handlebar 中的 Javascript 函数调用

javascript - XMLHttpRequest Post 上 send() 数据参数的最大长度

javascript - "The requested resource does not support http method ' POST' - 405 响应

php - 使用 Codeigniter 在 MySQL 中安全地转义动态表名

php - 如何只比较 MySQL 中 2 个表之间的月份和年份

php - 未找到 CodeIgniter 路由

jquery - 数据属性中的正则表达式--jquery

PHP 数组到 javascript 的转换改变了索引值

c# - 无法在c#中获取Bootstrap所见即所得富文本编辑器的编辑器div的InnerHtml

javascript - Python Flask 每 60 秒刷新一次表