虽然ajax调用正在发送正确的值并且它们正被写入数据库但我没有得到回复。
我已将代码减少到最小值以尝试找出错误,但我仍然无法得到回复......
$(document).ready(function () {
$('#change_username').click(function(){
$.ajax({
dataType: "json",
type: "POST",
url: "ajax/change_password_ajax.php",
data: $('#change_password_form').serialize(),
success:function(response){
smeg = (response.message),
alert(smeg)
}
});
});
});
change_password_ajax.php
$new_password = $_POST['new_password1'];
$new_password = md5($new_password);
$sql = "UPDATE user SET password = '$new_password' WHERE userID = '$id'";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
if($result){
$message = 'yes';
}
$output_array = array(
'message' => $message,
'bob' => 'yellow'
);
echo json_encode($output_array);
如果我使用Firebug,则发送到change_password_ajax.php的帖子会以红色突出显示,并且没有响应或html标签,但它没有说明原因。
答案 0 :(得分:-1)
编辑:在他的问题中没有看到第一句话。
在您的AJAX调用中,您已包含“成功”回调,但您没有包含“错误”回调。如果添加一个,您将可以访问错误处理所需的错误对象,但也可以提供有关失败的更多信息。
但是,在您的情况下,您说数据正在保存到数据库中 - 因此请求必须正常工作。错误要么发生在数据库请求之后(json_encode?),要么是处理响应的前端)
检查您的apache日志中是否有PHP错误,看看您是否可以查明正在发生的事情。
编辑2:
看看你的评论,这个其他堆栈溢出问题看起来可能会收集一些答案:
uncaught exception: out of memory in Ajax Process
如果您的按钮是提交按钮,您可能需要阻止按钮上的默认()。