【问题标题】:JQuery $.get returns object [duplicate]JQuery $.get返回对象[重复]
【发布时间】:2013-11-01 13:42:24
【问题描述】:

我是使用 JQuery 的新手,这行代码有问题。

function getById(id, callback) 
{
  return  $.get(url, {}, callback);
}

当我查看 .get 返回的内容时,它不是我认为应该返回的 xml 节点或 JSON。相反,我得到一个带有方法和原型集合的对象。它也有一个就绪状态。所以它没有返回未定义但也没有返回我所期望的。可能是什么问题?

我尝试将 get 分配给一个变量,但没有做任何事情我也尝试使用回调函数,但我真的不明白如何使用它来将从 get 返回的数据分配给一个变量。

【问题讨论】:

  • 简短回答:AJAX 中的“A”代表“异步”。这意味着.get() 函数在AJAX 调用完成 之前返回。 AJAX 调用的结果将在callback 函数中可用。长答案:这个问题被重复很多次。请参阅上面提到的问题。

标签: javascript jquery get


【解决方案1】:

$.ajax() 函数返回一个 jqXHR 对象。从 ajax 调用返回的数据将传递给您的回调,或者传递给 jqXHR 对象的 done 回调。

我建议阅读学习网站的$.ajax() documentationajax category

【讨论】:

    【解决方案2】:

    这称为promise

    它允许您使用异步操作的最终结果。
    调用then() 方法并在响应到达时传递回调以运行代码。
    这将返回该代码结果的新承诺。

    【讨论】:

    • 所以在这个例子中,从 getByID 响应中,你可以调用吗? var test = getByID(1); test.then( function(res){ console.log(res) } )
    【解决方案3】:

    它返回XMLHttpRequest。由于 AJAX 是异步的,你不能只返回 $.get 方法。

    所以你需要使用你的回调方法:

    $.get(url, {}, function( data ) {
        console.log( 'data' );
    });
    

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 2012-10-14
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      相关资源
      最近更新 更多