Ajax返回带有额外readyState,responseText,status和statusText的JSON对象

时间:2016-12-23 22:53:04

标签: javascript php arrays json ajax

我做了一个ajax调用来解析一个JSON对象。该对象由ajax完美调用。但问题是,当我返回对象时,它会向我的JSON对象添加4个属性readyState,responseText,status和statusText。

我想要的IJSON对象是

{"sysload":{"label":"System Load","data":[[0,2546],[1,10307],[2,16064],[3,26617],[4,21310],[5,1439],[6,1772],[7,2741],[8,25930],[9,23739]]}}

我得到了什么

{"readyState":4,"responseText":"{\"sysload\":{\"label\":\"System Load\",\"data\":[[0,15218],[1,15299],[2,3136],[3,26489],[4,7358],[5,20767],[6,11372],[7,565],[8,18122],[9,24635]]}}\t","status":200,"statusText":"OK"}

如何删除那些奇怪的4属性和反斜杠。这是我的PHP代码 -

<?php
    function get_server_load() 
    {
        $load=rand();
        return $load;
    }
    $data = array();
    $data['sysload'] = array();
    $data['sysload']['label'] = "System Load";
    for ($i=0; $i < 10; $i++) { 
        $data['sysload']['data'][] = array($i, get_server_load());
    }
    echo json_encode($data);
?>

这是我的javascript代码:

function getRealtime() {
    return $.ajax({
        type: 'GET',
        url: 'cpuload.php',
        data: {
            'get_server_load': 1
        },
        dataType: 'json',
        async: false,
        success: function(data) {
            dataxxx = data;
        }
    });
    return dataxxx;
}

返回数据包含那些额外的属性,但在ajax成功回调中它绝对是好的。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

我执行了这个:

function getRealtime() {
    var dataxxx;
    $.ajax({
        type: 'GET',
        url: 'cpuload.php',
        data: {
            'get_server_load': 1
        },
        dataType: 'json',
        async: false,
        success: function(data) {
            dataxxx = data;
        }
    });
    return dataxxx;
}
console.log(getRealtime());

返回{"sysload":{"label":"System Load","data":[[0,16333],[1,29610],[2,32616],[3,15902],[4,5212],[5,29171],[6,12775],[7,15058],[8,3307],[9,14984]]}}