0

我正在尝试使用 jQuery 读取响应,但我不知道它是如何与响应一起工作的。

在此处查看带有 js post + response 的小示例代码:

$.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

有人可以告诉我我在这方面缺少什么吗?


当我删除dataType:“json”时,这很好用

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

4 回答 4

3

无需解析响应,因为 dataType 设置为 json,该方法会将响应解析为 json 并将其传递给处理程序

只是

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');
    }   
});
于 2013-06-25T09:01:44.860 回答
2

做就是了

alert(data.status);   // online
于 2013-06-25T08:58:51.920 回答
0

不确定那里的解析方法。由于您使用的是 jQuery,请尝试:

var r = jQuery.parseJSON(data);
alert(r.status);
于 2013-06-25T09:01:26.293 回答
0

由于您将dataTypeas 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');
    }   
});
于 2013-06-25T09:02:39.850 回答