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)

次にparsedResponse.id、条件内で使用できる like にアクセスしますif

于 2012-07-02T10:41:59.593 に答える