2013-06-25 568 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'); 
    } 
});