再次遇到一些基本问题。
我需要修改以前返回一个用代码编写的对象的函数。我现在正尝试通过$ .getJSON
从json获取对象 function getEventData() {
var result = '';
$.getJSON("ajax.php?cmd=getbydate&fromdate=&todate=", function(data){
result = data;
});
return result;
}
问题是由于明显的原因未在回调函数中设置结果。
你们对此有解决方案吗?
编辑:好的,我得到的答案已被删除。我只需要稍作更改即可。
这是有效的答案:
function getEventData() {
var result = '';
url = "ajax.php?cmd=getbydate&fromdate=&todate=";
$.ajax({
url: url,
async: false,
dataType: 'json',
success: function(data){
result = data;
}
});
return result;
}
您应该以异步方式对应用程序进行编程,这意味着您也应该对应用程序流使用回调函数,或者继续使用getJson回调函数。您也可以同步发出请求,然后该请求应该能够返回值(或至少分配它并阻塞该函数,直到回调完成),但是完全不建议这样做:
function getEventData() {
var result = '';
result = $.ajax({
url: "ajax.php?cmd=getbydate&fromdate=&todate=",
async: false,
dataType: "json",
data: data,
success: function(data) {
return data;
}
});
return result;
}
您确定服务器返回有效的json吗?最好使用jsonlint之类的工具进行验证。另外,请确保将application/json
用作响应的内容类型。