没有得到codeigniter中的ajax调用的响应

时间:2013-08-11 12:10:25

标签: ajax json codeigniter

我正在尝试使用ajax和codeigniter检查用户名是否可用。我有问题从我的js中的codeingniter控制器获取响应。文件但没有成功。

以下是与问题相关的控制器功能:

if ($username == 0) {  
    $this->output->set_output(json_encode(array("r" => true)));
} else {   
    $this->output->set_output(json_encode(array("r" => false, "error" => "Username already exits")));
}

请放心,如果数据库中已存在用户名,我会得到1,如果不存在,则为0。

我有以下js.file

// list all variables used here...
var
    regform = $('#reg-form'),
    memberusername = $('#memberusername'),
    memberpassword = $('#memberpassword'),
    memberemail = $('#memberemail'),
    memberconfirmpassword = $('#memberconfirmpassword');



regform.submit(function(e) {

e.preventDefault();

console.log("I am on the beggining here"); // this is displayed in console


var memberusername = $(this).find("#memberusername").val();
var memberemail = $(this).find("#memberemail").val();
var memberpassword = $(this).find("#memberpassword").val();
var url = $(this).attr("action");

$.ajax({
    type: "POST",
    url: $(this).attr("action"),
    dataType: "json",
    data: {memberusername: memberusername, memberemail: memberemail, memberpassword: memberpassword},
    cache: false,
    success: function(output) {
        console.log('I am inside...'); // this is never displayed in console...
            console.log(r); // is never shonw in console
            console.log(output); is also never displayed in console  
    $.each(output, function(index, value) {
            //process your data by index, in example



        });
    }


});
return false;

})

任何人都可以帮我在ajax中获取r的用户名值,这样我就可以采取适当的行动吗?

干杯

1 个答案:

答案 0 :(得分:0)

基本上,你是说永远不会调用success处理程序 - 意味着请求在某种程度上有错误。您应该添加error处理程序,甚至可能是complete处理程序。这至少会告诉你这个请求发生了什么。 (其他人提到过使用Chrome开发工具 - 是的,那样做!)

至于解析错误。您的请求期望json数据,但您的数据不能以json格式返回(它的格式为json,但没有内容类型标题,浏览器只会将其视为文本)。尝试将您的PHP代码更改为:

if ($username == 0) {  
    $this->output->set_content_type('application/json')->set_output(json_encode(array("r" => true)));
} else {   
    $this->output->set_content_type('application/json')->set_output(json_encode(array("r" => false, "error" => "Username already exits")));
}