JQuery Ajax调用没有发回响应

时间:2015-04-09 15:36:10

标签: javascript jquery ajax

虽然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标签,但它没有说明原因。

1 个答案:

答案 0 :(得分:-1)

编辑:在他的问题中没有看到第一句话。

在您的AJAX调用中,您已包含“成功”回调,但您没有包含“错误”回调。如果添加一个,您将可以访问错误处理所需的错误对象,但也可以提供有关失败的更多信息。

但是,在您的情况下,您说数据正在保存到数据库中 - 因此请求必须正常工作。错误要么发生在数据库请求之后(json_encode?),要么是处理响应的前端)

检查您的apache日志中是否有PHP错误,看看您是否可以查明正在发生的事情。

编辑2:

看看你的评论,这个其他堆栈溢出问题看起来可能会收集一些答案:

uncaught exception: out of memory in Ajax Process

如果您的按钮是提交按钮,您可能需要阻止按钮上的默认()。