0

这是询问用户是否存在于数据库中的 ajax 代码。回复没问题:

{"exists":true}

但代码在第 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');
        });

谁能告诉我为什么?

谢谢你!

4

2 回答 2

1

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

$.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 -->
于 2013-09-30T13:54:04.367 回答
0

尝试:

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

    }else{

    }
}
于 2013-09-30T13:36:37.413 回答