我试图循环浏览一个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
答案 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");
}