使用AJAX检查JSON响应

时间:2013-09-30 13:34:23

标签: php ajax json

这是ajax代码,询问用户是否存在于数据库中。答案还可以:

{"exists":true}

但代码在POINT 1上失败

$.post('http://lajmetari.info/icb/modules/mod_facebook/tmpl/search.php',{user_id: '655879565'}, function(data){
                if(data.exists){   // POINT 1
                console.log('PO');
                    $('#container_like').show();
                        $('#container_notlike').hide(); 
                        $("#erresira").remove();
                        $("#popup").remove();
                }else{
                console.log('JO');
                    var loadUrl = "http://lajmetari.info/icb/modules/mod_facebook/tmpl/ajax.php";
                $("#result").html(ajax_load).load(loadUrl+"?user_id=" + user_id);
                $('#container_like').hide();
                        $('#container_notlike').show();
                }
            }, 'JSON');
        });

谁能告诉我为什么?

谢谢你!

2 个答案:

答案 0 :(得分:1)

也许不是仅使用true / false变量返回JSON对象,而是当用户不存在时,可以从服务器返回404 http状态代码,而当它有一些数据时,可以返回200状态代码。

$.post('http://lajmetari.info/icb/modules/mod_facebook/tmpl/search.php',{ user_id: '655879565' })
.done(function(data){
    console.log('PO');
        $('#container_like').show();
        $('#container_notlike').hide(); 
        $("#erresira").remove();
        $("#popup").remove();
})
.fail(function(){
    console.log('JO');
    var loadUrl = "http://lajmetari.info/icb/modules/mod_facebook/tmpl/ajax.php";
    $("#result").html(ajax_load).load(loadUrl+"?user_id=" + user_id);
    $('#container_like').hide();
    $('#container_notlike').show();
})

然后你将有一个明确的方法来处理真/假案件。

在php中你可以为404做这样的事情:

<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Status: 404 Not Found");

$_SERVER['REDIRECT_STATUS'] = 404;
?> <!-- 404 contents below this line -->

答案 1 :(得分:0)

尝试:

if(data){
    var obj = $.parseJSON(data);
    if(obj.exists){

    }else{

    }
}