【问题标题】:How to access an object returned by jQuery.post()?如何访问 jQuery.post() 返回的对象?
【发布时间】:2013-10-17 11:06:06
【问题描述】:

我将 AJAX 请求存储在一个数组中以供进一步处理,requests.push($.post('/validate', postData));.each() 循环中。

当我转储这些对象时,Chrome 网络检查器会显示:

Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}

等等,对于数组的每个对象。在这些对象中,我想获取responseText(AJAX 查询返回的数据)。我不知道该怎么做。

request.responseText 似乎不起作用。

【问题讨论】:

  • 对于 jQuery,您会发现 jQuery Docs 有很多演示和示例。大多数基础知识都可以立即在其中找到。您的问题的答案也在顶部。 MDN 也是一个很好的资源。我不是在讽刺,我的意思是从长远来看,我的意思是为了避免你自己的一些挫败感。当然,您可以随时询问 SO,但文档通常会在基础知识方面为您提供更快的结果。希望对您有所帮助。
  • 我知道人们会通过给 -ve 标记而不是指导大人物来劝阻我讨厌我在这里给 1+
  • @FrançoisWahl 我的完整代码有点棘手。我存储请求是因为在执行另一部分代码之前,我必须确保所有请求都已发出并返回响应。我使用这种方法:stackoverflow.com/a/16524738/2544016。我在whenAll() 部分中转储了元素。
  • @ryancey:啊,我想我明白了。在玩这个here 时,我自己使用了$.when(function1(), function2(), function3()).done(function () {//..all done})。每个函数都返回一个$.Deferred。每个函数都可以执行一个帖子并将响应存储在每个帖子的成功回调中。然后done() 执行,您可以在其中访问响应数组并在继续之前执行您需要做的事情。您甚至可以将其包装在另一个 when 中,依此类推。我不确定这是否有帮助,但我希望它有所帮助。
  • @FrançoisWahl 它通过使用element.done(function(data) { console.log(data); }); 工作。谢谢你:)

标签: javascript jquery ajax


【解决方案1】:

您记录的是 ajax 请求,而不是 ajax 响应。

您需要一个成功方法,它可以让您获得从服务器返回的响应。

直接来自the documentation

$.post( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
});

【讨论】:

    【解决方案2】:

    试试看,

    $.post('/validate', postData,function(data){
        requests.push(data); // push response in array here
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 2021-12-12
      • 2020-01-31
      • 1970-01-01
      相关资源
      最近更新 更多