0

我正在尝试检查我对 ajax 查询的响应,但我似乎无法弄清楚如何解析结果。

$('input[name=sendpassword]').click(function(){
                var password = $("input[name=password]").val();
                var dataString = "uid=" + uid + "&password=" + password;
                console.log(dataString);
                $.ajax({
                    type:"POST",
                    url:"/assets/inc/check-password.php",
                    data:dataString,
                    dataType:'html',
                    context:document.body,
                    global:false,
                    async:false,
                    success:function(data){
                        console.log(data);
                        if (data[0].id==true){
                            console.log("success");
                        } else {
                            console.log("failed");
                        }
                        //window.location.replace(reffer);
                        //document.location ="/";
                    }
                });
            });

console.log 显示{"id":false}{"id":true}但我想用结果做一个 if 语句

4

4 回答 4

2

如果(data.d==true)试试这个

$('input[name=sendpassword]').click(function(){
                var password = $("input[name=password]").val();
                var dataString = "uid=" + uid + "&password=" + password;
                console.log(dataString);
                $.ajax({
                    type:"POST",
                    url:"/assets/inc/check-password.php",
                    data:dataString,
                    dataType:'json',
                    context:document.body,
                    global:false,
                    async:false,
                    success:function(data){
                    console.log(data.d);
                        if (data.d==true){
                            console.log("success");
                        } else {
                            console.log("failed");
                        }
                        //window.location.replace(reffer);
                        //document.location ="/";
                    }
                });
            });
于 2012-07-02T10:53:58.233 回答
1

试试这个jQuery.parseJSON( data ),而不是if (data[0].id==true){使用if (data.id=="true"){

$('input[name=sendpassword]').click(function(){
                var password = $("input[name=password]").val();
                var dataString = "uid=" + uid + "&password=" + password;
                console.log(dataString);
                $.ajax({
                    type:"POST",
                    url:"/assets/inc/check-password.php",
                    data:dataString,
                    dataType:'html',
                    context:document.body,
                    global:false,
                    async:false,
                    success:function(data){
                    data = jQuery.parseJSON(data)
                        console.log(data);
                        if (data.id==true){
                            console.log("success");
                        } else {
                            console.log("failed");
                        }
                        //window.location.replace(reffer);
                        //document.location ="/";
                    }
                });
            });

或按照建议Jared

dataType:'html' 需要是 dataType:'json'。

那么你就不需要解析成 JSON

于 2012-07-02T10:42:28.327 回答
0

如果控制台只显示{"id":false}(即不显示数组),那么您可以通过以下方式使用它:data.id==true

于 2012-07-02T10:41:58.397 回答
0

首先解析结果,以便您可以访问结果中的各个组件。

var parsedResponse = JSON.parse(data)

然后访问 like parsedResponse.id,您可以在您的if条件中使用它。

于 2012-07-02T10:41:59.593 回答