2012-07-02 159 views
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」:虛假}{ 「ID」:真正}但我想,如果有語句來完成的結果

+2

'數據類型:'html''必須'數據類型: 'json',如果你得到JSON的話。 –

+1

在data [0] .id'中丟失'[0]',數據是一個不是數組的對象 –

+0

@ red-X答案框低於 –

回答

2

試試這個,如果(data.d ==真)

$('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 ="/"; 
        } 
       }); 
      }); 
0

如果控制檯只是顯示{"id":false}(即未示出的陣列),則可以通過使用它:data.id==true

+1

'id'引號讓我相信它還沒有被解析。 –

0

第一解析結果,所以可以訪問IND結果中的單個組分。

var parsedResponse = JSON.parse(data) 

然後訪問諸如parsedResponse.id,您可以您if條件內使用。

+0

@Jared Farrish,:)修正了這個問題。 – Sparky

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' 必須是數據類型: 'JSON'。

那麼你就不需要解析成JSON

+0

不會將'dataType'更改爲'json'會更直接嗎? –

+0

是的,這也不錯。 – Rab