我能够在AJAX请求中解析Json数组中的项目,但在它之外是未定义的。为什么是这样?
function samplesByDate() {
var csrftoken = getCookie('csrftoken');
$.ajax({
url : "/samples/byDate/",
type : "POST",
data : { csrfmiddlewaretoken : csrftoken },
success : function(json) {
if (json['error'] === 'true' ) {
alert(json['message']);
} else {
console.log(json['samples']);
return json['samples'];
}
},
error : function(xhr,errmsg,err) {
console.log(xhr.status + ": " + xhr.responseText);
}
})
};
ajax函数内的控制台日志正确报告:
[
{
"id": 72,
"title": "Sample Upload 1",
"date": "2017-09-18",
"coordinates": "45.58837890625, -122.39273834228516",
"type_primary": "Brix",
"value_primary": 15.52022647857666,
"type_secondary": "Dry Matter",
"value_secondary": 16.35165786743164
}
]
但是当我尝试在返回后打印该值时,它会改为 undefined。
console.log(samplesByDate());
控制台显示
undefined
我注意到的一点是,sampleByDate()未定义错误,因此它正确地迭代了函数,而是在尝试打印返回值时显示未定义。