jQuery不会读取JSON响应(使用$ .post)

时间:2010-01-16 21:34:19

标签: jquery ajax json forms submit

简而言之,我有一个表单,在提交后,将数据发送到服务器端脚本以处理函数,以JSON格式返回数据,以便我解析并吐出到页面上。

  1. jQuery通过$.post方法将数据发送到“createUser.php”

    $("#create_submit").click(function(){
        $.post("/createUser.php", {
            create_user_name: $('#create_user_name').val(),
            create_user_email: $('#create_user_email').val(),
            create_user_password: $('#create_user_password').val() },
            function(data){
                alert(data.response);
            }, "json");
    });
    
  2. “createUser.php”返回JSON数据

    <?php
    header('Content-type: application/json');
    $return['response'] = 'hmm...';
    echo json_encode($return);
    exit;
    ?>
    
  3. 也许是我,但我似乎无法得到我需要的警报。发生了什么事?!

2 个答案:

答案 0 :(得分:3)

我认为回调函数的data参数已经是数据,并且没有response成员。

尝试function(data){ alert(data); }

文档:jquery.post

答案 1 :(得分:0)

从您的回答中我可以看出,只有在您执行上述POST请求时才会输出JSON。如果您执行正常的GET请求,它可以正常工作。要对此进行测试,请将$ .post更改为$ .get(如果需要,请清除变量create_user_ *),然后查看是否收到回复。

如果你这样做,那么你需要检查你的createUser.php文件,看看为什么POST请求不返回JSON,但是GET请求没有。看起来这是一个PHP问题,而不是JavaScript / JSON / jQuery问题。