[getJSON调用的jQuery麻烦

问题描述 投票:1回答:2

再次遇到一些基本问题。

我需要修改以前返回一个用代码编写的对象的函数。我现在正尝试通过$ .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;
}
jquery json
2个回答
1
投票

应该以异步方式对应用程序进行编程,这意味着您也应该对应用程序流使用回调函数,或者继续使用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;
}

0
投票

您确定服务器返回有效的json吗?最好使用jsonlint之类的工具进行验证。另外,请确保将application/json用作响应的内容类型。

© www.soinside.com 2019 - 2024. All rights reserved.