繁体   English   中英

AJAX 响应返回 html 内容

[英]AJAX response returns html content

我的 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 内容。 我无法确定发生了什么。

将您的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);
}

代替

echo $email;

采用:

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

return json_encode($response);

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

嗨,也许我可以帮助某人,我遇到了同样的问题,就我而言,错误在这里“url:base_url + 'Home/forgotPassword'”

在这个例子中,我必须像这样传递所有的 url:/anotherdirectory/Home/forgotPassword.php',看看你的“url”

$.ajax({ url : "change here fo works"', type : 'POST', data : {email : email}, dataType:'json', success: function(data) {
控制台日志(数据);
//location.reload(); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM