从jQuery Ajax post返回JSON值
我试图循环一个json对象并输出该值,但该值一直以“未定义”的形式返回。我做错了什么 JSON JavaScript从jQuery Ajax post返回JSON值,jquery,ajax,json,Jquery,Ajax,Json,我试图循环一个json对象并输出该值,但该值一直以“未定义”的形式返回。我做错了什么 JSON JavaScript function runSync() { var url = "http://207.230.229.209/tag/assettags.json"; $.ajax({ type: "GET", url: url, success: successHandlerRunSync, error: erro
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);
}
您说过您的代码在同一台服务器上运行,所以请去掉
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");
}
函数successHandlerRunSync(数据、文本状态、jqXHR){
var内容=“”;
$。每个(数据、功能(i、post){
content+=''+post.AssetGUID+' ';
content+=''+post.AwayForRepair+' ';
});
$(content.appendTo(“#addJSON”);
}
这不是jsonpCallback
参数的用途。这应该是包装JSON的回调函数的名称。它不是一个“过滤”函数或任何东西。这是jQuery用作JSONP的“成功”参数的内容。如何使用dataj.AssetGUID
和dataj.AwayForRepair
您拥有207.230.229.209
?您的代码是否在同一台服务器上运行?JSONP是服务器需要支持的东西。它不会神奇地让你得到任意的JSON文件。你确定这个服务甚至支持JSONP(或CORS)吗?代码运行在同一台服务器上,它支持JSONP。如果代码运行在同一台服务器上,那么你就不需要JSONP。JSONP仅用于跨域请求。
var url = "http://207.230.229.209/tag/assettags.json";
$.ajax({
type: "GET",
url: url,
success: successHandlerRunSync,
error: errorHandlerRunSync,
dataType: "json"
});
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");
}