0

我正在尝试检查用户名是否可用于使用 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 的用户名值,以便我可以采取适当的措施?

干杯

4

1 回答 1

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")));
}
于 2013-08-13T07:58:15.027 回答