2013-06-25 428 views
0

我想閱讀與jQuery的響應,我不知道它如何與響應一起工作。如何閱讀與jQuery的JSON響應

見與JS後+響應的小例子代碼在這裏:

$.ajax({ 
    url: "http://localhost/ajaxpost/ajax.php", 
    type: "post", 
    data: "action=check&uid=1", 
    dataType: "json", 
    success: function(data){ 
     $("#result").html('submitted successfully'); 
     response = JSON.parse(data); 
     status = response.status; 
     alert(status); 
    }, 
    error:function(){ 
     $("#result").html('there is error while submit'); 
    } 
}); 

的迴應是:

{"first":"John","last":"Heyden","uid":"1","token":"10","value":"100000","friends":"23","country":"australia","status":"online"} 

現在我想這是alert online

有人能告訴我我在這裏錯過了什麼?


當我刪除數據類型: 「JSON」,這工作正常

success: function(data){ 
    $("#result").html('submitted successfully'); 
    var r = jQuery.parseJSON(data); 
    alert(r.status); 
+1

你確定你需要解析'data'嗎?我認爲這應該是一個JavaScript對象已經 – musefan

回答

3

沒有必要解析響應爲數據類型設置爲JSON,該方法將解析爲JSON響應ANS將它傳遞給處理程序

只是

alert(data.status) 

例:

$.ajax({ 
    url: "http://localhost/ajaxpost/ajax.php", 
    type: "post", 
    data: "action=check&uid=1", 
    dataType: "json", 
    success: function(data){ 
     $("#result").html('submitted successfully'); 
     status = data.status; 
     alert(status); 
    }, 
    error:function(){ 
     $("#result").html('there is error while submit'); 
    } 
}); 
+0

謝謝你的作品 – RockingWeb

2

只是做

alert(data.status); // online 
+0

不工作,我已經嘗試了它 – RockingWeb

0

不知道你的分析方法存在。由於您使用jQuery,試試:

var r = jQuery.parseJSON(data); 
alert(r.status); 
+0

當我刪除**數據類型:「JSON」,**你的解決方案作品 – RockingWeb

0

既然你定義的dataType爲JSONÿ你不需要解析它,它會被轉換爲對象,所以你只需要:

$.ajax({ 
    url: "http://localhost/ajaxpost/ajax.php", 
    type: "post", 
    data: "action=check&uid=1", 
    dataType: "json", 
    success: function(data){ 
     $("#result").html('submitted successfully'); 
     //Don't need this line 
     //response = JSON.parse(data); 
     //you called the object data, so use it 
     status = data.status; 
     alert(status); 
    }, 
    error:function(){ 
     $("#result").html('there is error while submit'); 
    } 
});