2012-07-02 162 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