$ .ajax()响应处理

时间:2012-07-02 10:37:00

标签: jquery ajax json

我正在尝试检查我对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 个答案:

答案 0 :(得分:2)

尝试这个if(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 ="/";
                    }
                });
            });

答案 1 :(得分: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

建议的
  

数据类型:' HTML'需要是dataType:' json'。

那么你就不需要解析为JSON

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

var parsedResponse = JSON.parse(data)

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