使用json的Jquery Ajax获得了一个未定义的值

时间:2010-12-01 14:24:36

标签: php jquery json

$.ajax({                
    type: "POST",
    url: "check.php",
    data: "checkit=" + $("#checkEmail").val(),
    success: function(response){
        $("#userCheck").html(response.status);
        if(response.status == true){
            alert("yay");
        }else{
            alert("dsfds");
        }
    }
}, 'json');

有人在这里建议使用json做我的ajax返回...

这是我的php文件返回json ..

$data = {success:true};
    echo json_encode($data);

我的回复未定义。也许这里有人可以指出我的错误?

2 个答案:

答案 0 :(得分:5)

你也错过了

dataType: 'json'

你的PHP错了:

$data=array('status'=>true);

<强>更新

以下是我会尝试的一些建议:

1)'dataType'(区分大小写我相信)

2)尝试使用'contentType'选项:

contentType: "application/json; charset=utf-8"

我不确定这对你的帖子网址的请求有多大帮助,而不是在回复中。 有关详细信息,请参阅此文章:http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax (它是为asp.net编写的,但可能适用)

3)三重检查帖子网址的输出并通过JSON验证器运行输出,以确保它是有效的,并且可以解析为JSON对象。 http://www.jsonlint.com

希望其中一些有帮助!

答案 1 :(得分:1)

您引用的是另一个变量,您发送success(无效),但检查status。使用您当前的jQuery,它应该是:

echo json_encode(array('status' => true));