代码之家  ›  专栏  ›  技术社区  ›  Svish

如何处理AjaxComplete事件中的响应数据

  •  3
  • Svish  · 技术社区  · 14 年前

    假设我有这个代码:

    function onComplete(event, request, settings)
    {
        // How do I get the data? In the correct format?
    }
    
    $('body').ajaxComplete(onComplete);
    

    在常规的Ajax成功处理程序中,我可以直接访问数据,因为它将是处理程序的第一个参数。它也将采用正确的格式(只要内容类型在服务器上设置正确)。

    如何处理 ajaxComplete 事件?

    3 回复  |  直到 9 年前
        1
  •  5
  •   Nick Craver    14 年前

    可以 像这样使用,但没有记录:

    function onComplete(event, request, settings) {
      var data = $.httpData(request, settings.dataType, settings);
    }
    

    这个 jQuery.httpData function 是内部用来获取的 data 对于 success 但是你 可以 直接使用。请注意,它是未记录的,因此可能会在新版本中更改,恕不另行通知。例如在 jQuery 1.4.3 它将会是 jQuery.ajax.httpData 相反。

        2
  •  0
  •   vito huang    14 年前

    根据文件:

    http://api.jquery.com/ajaxComplete/

    我认为您不是有意篡改数据,因为它不会将任何数据传递给处理程序。如果需要数据,最好在常规Ajax中使用set success属性。

        3
  •  0
  •   bjg    14 年前

    如果您想要获取数据,这可能不是正确的处理程序,因为这实际上更像是在任何Ajax调用完成时作为基本通知回调(对于所有挂接的元素)。

    要获取数据,您可能需要在方法中更具针对性,并使用$.Ajax()调用或其变体之一,如$.get()或$.getjson()。见 here