我的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内容。我无法确定发生了什么。
答案 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();
}