[英]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.