Ajax请求控制器错误

时间:2012-06-20 19:00:09

标签: jquery ajax codeigniter

我正在使用ajax来执行用户注册功能。我使用ajax将用户信息发送到控制器,控制器然后将信息传递给模型以将信息插入数据库。

当我在数据库中看到该条目时,插入成功完成。但是对于我的ajax请求,它总是返回错误。

我注意到的是,一旦我将其中一个字段留空,它就会返回成功。

我的ajax脚本如下

var post_data = 
    {
        'username':user_name,
        'password':user_password,
        'email':user_email,
        'role':user_role
    };


    $.ajax({
        type: "POST",
        dataType: "json",
        url:"login_register/register_data",
        data: post_data,
        success: function(data) {
                alert('Insertion of user ok');
        },
        error: function(data)
        {
            alert('Insertion of user error ' + data.responseText);
        }
    });

我的控制器代码

public function register_data()
{
    $this->load->database();
    $this->load->model('login_model');

    $user_name=$this->input->post('username');
    $user_password=$this->input->post('password');
    $user_email=$this->input->post('email');
    $user_role=$this->input->post('role');

    $result = $this->login_model->register_data_model($user_name,$user_password,$user_email,$user_role);

    //if($result)
        echo "true";
    //else echo "false";
}

我的型号代码

public function register_data_model($user_name,$user_password,$user_email,$user_role)
{
    $result = $this->db->query("INSERT INTO user_table (user_name,user_password,user_email,user_role) VALUES (".$this->db->escape($user_name).",".$this->db->escape($user_password).",".$this->db->escape($user_email).",".$this->db->escape($user_role).")");
}

即使我不从模型和控制器返回任何东西,它仍然表现得像这样。任何人都知道发生了什么事?

4 个答案:

答案 0 :(得分:0)

我认为post_data不正确...试试这个:

$.ajax({
    type: "POST",
    dataType: "json",
    url:"login_register/register_data",
    data: {user_name:'username', user_password:'password',user_email:'email',user_role:'role'},
    success: function(data) {
            alert('Insertion of user ok');
    },
    error: function(data)
    {
        alert('Insertion of user error ' + data.responseText);
    }
});

这将要求你通过控制器中的新密钥,即

$user_name=$this->input->post('user_name');

答案 1 :(得分:0)

试试这个:

var post_data = 
{
     username:user_name,
     password:user_password,
     email:user_email,
     role :user_role
};

答案 2 :(得分:0)

id建议返回实际的json格式数据,而不仅仅是true。

类似于:

[{"successfull":"yes" }]

并将您的php标头设置为应用程序类型json。

然后在你的javascript中你可以在成功函数中进行测试

if(data[0]["successfull"].indexOf("yes") != -1)
    {
    dosomething()
    }

答案 3 :(得分:0)

检查网络标题,确保您的网站没有投放500或其他内容。