0

可能重复:
无法从 jQuery Ajax 调用中获取正确的返回值
如何从函数的 AJAX 调用中返回响应?

我有这个:

  get_json = (url) ->
    $.getJSON "#{url}.json", {}, (json, response) ->
      return json

但这编译为:

getJson = function(url) {
  return $.getJSON("" + url + ".json", {}, function(json, response) {
    return json;
  });
};

..并返回响应对象。我怎样才能只返回 json?

4

1 回答 1

5

正在返回一个延迟对象,使用它来获取您的数据。使用您当前的get_json方法实现,此 JavaScript 应该可以工作:

get_json("http://example.com").done(function(obj){
    console.log(obj);
});

您的代码可以简化为:

get_json = (url) ->
    $.getJSON "#{url}.json"

转换没有错,错的是您对 ajax 请求如何工作的假设。

您不能有一个具有 url 参数的函数,该参数发送一个 ajax 请求并从函数返回数据而不使 ajax 请求同步(由于各种原因,这是一个坏主意)。

于 2013-01-17T19:38:59.143 回答