从jQuery Ajax帖子返回JSON值

时间:2014-06-04 17:20:16

标签: jquery ajax json

我试图循环浏览一个json对象并输出该值,但该值仍然以" undefined"返回。我做错了什么?

JSON

{"AssetGUID":"00000000-0000-0000-0000-000000000000","AwayForRepair":false}

的JavaScript

function runSync() {
    var url = "http://207.230.229.209/tag/assettags.json";
    $.ajax({
        type: "GET",
        url: url,
        success: successHandlerRunSync,
        error: errorHandlerRunSync,
        dataType: "json",
        jsonpCallback: 'parseJSON' // specify the callback name if you're hard-coding it
    });
    $('#jsonMsg').html('Running...');
    $('#jsonRslt').html(' ');
}

function successHandlerRunSync(data, textStatus, jqXHR) {
    var dataJSON = JSON.stringify(data);
    $('#jsonMsg').html("RunSync Success <br>status: " + textStatus);
    $('#jsonRslt').html(dataJSON);

    var content = '';
    var dataj = $.parseJSON(data);

    $.each(dataj, function(i, post) {
    content += '<li>' + post.AssetGUID + '</li>';
    content += '<li>' + post.AwayForRepair+ '</li>';
    });

    $(content).appendTo("#addJSON");

    console.log("RunSync Success");
    console.log(data);
    console.log(dataJSON);
    console.log(textStatus);
}

输出

AssetGuid : undefined
AwayForRepair : undefined

1 个答案:

答案 0 :(得分:1)

您说您的代码在同一台服务器上运行,因此请删除jsonpCallback参数。你这里没有使用JSONP,它只适用于跨域请求。

var url = "http://207.230.229.209/tag/assettags.json";
$.ajax({
    type: "GET",
    url: url,
    success: successHandlerRunSync,
    error: errorHandlerRunSync,
    dataType: "json"
});

然后,在您的回调中,JSON将已经为您解析,无需致电$.parseJSON

function successHandlerRunSync(data, textStatus, jqXHR) {
    var content = '';

    $.each(data, function(i, post) {
        content += '<li>' + post.AssetGUID + '</li>';
        content += '<li>' + post.AwayForRepair+ '</li>';
    });

    $(content).appendTo("#addJSON");
}