AJAX响应返回html内容

时间:2017-10-06 07:23:08

标签: javascript php jquery ajax codeigniter

我的codeigniter项目中有一个AJAX调用。这是我的代码:

在视图中:

$('#forgotPassword').click(function() {
        var base_url = '<?php echo base_url()?>'; 
        $('#forgotPasswordEmailError').text('');
        var email = $('#forgotPasswordEmail').val(); 
        console.log(email);
        if(email == ''){
            $('#forgotPasswordEmailError').text('Email is required');
        }else{
            $.ajax({
                url : base_url + 'Home/forgotPassword',
                type : 'POST',
                data : {email : email},
                success: function(data) {       
                    console.log(data);                  
                    //location.reload();
                }
            });
        }

    });

和控制器:

public function forgotPassword() { 
   $email = $this->input->post('email');
   echo $email; 
}

但响应仅包含我视图中的html内容。我无法确定发生了什么。

3 个答案:

答案 0 :(得分:4)

将您的jquery代码更改为

$('#forgotPassword').click(function() {
    var base_url = '<?php echo base_url()?>'; 
    $('#forgotPasswordEmailError').text('');
    var email = $('#forgotPasswordEmail').val(); 
    console.log(email);
    if(email == ''){
        $('#forgotPasswordEmailError').text('Email is required');
    }else{
        $.ajax({
            url : base_url + 'Home/forgotPassword',
            type : 'POST',
            data : {email : email},
            dataType:'json',
            success: function(data) {       
                console.log(data);                  
                //location.reload();
            }
        });
    }

});

更改您的控制器代码,如

public function forgotPassword() { 
   $email = $this->input->post('email');
   $response = ["email" => $email];
   echo json_encode($response);
}

答案 1 :(得分:0)

而不是

echo $email;

使用:

$response = ["email" => $email];

return json_encode($response);

使用JSON.parse在客户端解析JSON。

答案 2 :(得分:0)

嗨,也许我可以帮助某人,但我遇到了同样的问题,在我的情况下,错误是“ url:base_url +'Home / forgotPassword'”

在此示例中,我必须像这样通过url传递所有路径:/anotherdirectory/Home/forgotPassword.php', 看看您的“网址”

$。ajax({ url:“在这里更改作品”', 类型:“ POST”, 数据:{电子邮件:电子邮件}, dataType:'json', 成功:函数(数据){
console.log(data);
//location.reload(); }