jqgrid - 在loadComplete事件上访问XmlHttpRequest

时间:2015-12-05 13:01:22

标签: javascript jquery jqgrid

我在我的项目中使用了jqgrid插件。它有loadComplete事件,此描述:

  

loadComplete此事件在每次服务器请求后立即执行。   参数:数据 - 响应中的数据取决于数据类型网格参数。

此事件仅以data为参数,但在此事件中我需要xhrXmlHttpRequest的实例)。实际上,我需要在每次服务器请求后立即访问XmlHttpRequest实例。我该怎么做?

1 个答案:

答案 0 :(得分:0)

请在jqGrid的所有问题中发布jqGrid和fork(free jqGridGuriddo jqGrid JS或版本&lt; = 4.7中的旧jqGrid)的版本。< /强>

回调loadComplete将在从服务器获取响应后执行,解析响应,填充当前页面以及下一页的其他数据(以防万一)使用loadonce: true选项)也在本地保存。因此,您应该使用beforeProcessingloadBeforeSendloadError来访问jqXHR对象,该对象是XMLHttpRequest的jQuery扩展名。

当您需要访问jqXHR时,有不同的情况:

  • 回调loadBeforeSend可用于在发送到服务器的请求中设置一些自定义HTTP标头。有关典型代码示例,请参阅the answer
  • beforeProcessing可用于检查服务器响应,并在之前修改data 处理。
  • 例如,想要测试是否存在待处理的Ajax请求并中止它。 free jqGrid将待处理请求的jqXHR对象保存到内部jqXhr参数。可以使用abortAjaxRequest方法中止它。内部jqXhr参数将在null处理开始时直接清除(设置为success)。

如果我正确理解了您的问题,那么您可以在向服务器发送Ajax请求后直接使用jqXhr参数。我是免费jqGrid fork的开发者,因此我可以推荐给你。当前版本的免费jqGrid是4.11.1。您可以通过将jqGrid的URL修改为the wiki article中描述的URL来测试它。