使用getJSON调用时jquery出现问题

时间:2010-05-28 14:21:35

标签: jquery json

再次遇到一些基本问题。

我需要修改之前在代码编写对象中返回的函数。 我现在试图通过$ .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;
}

2 个答案:

答案 0 :(得分: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;
   }

答案 1 :(得分:0)

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