.ajaxPrefilter()jQuery

时间:2011-12-08 09:15:39

标签: jquery ajax

我想过滤所有ajax响应。我发现了这个jQuery函数:jQuery.ajaxPrefilter()。 谁能告诉我这是如何工作的? 当用户没有登录时,我必须抓住那个php响应(fe:“not_logged_on”),因为它必须按照正常情况进行操作。

例如:

jQuery.ajaxPrefilter(function( response ){
   if ( response == 'not_logged_on' )
       window.location = "?login";
})

我希望我的问题可以理解。

2 个答案:

答案 0 :(得分:2)

我建议使用jQuery.ajaxSetup。你想要实现的是每次ajax调用时都会检查响应。 ajaxPrefilter可帮助您在进行ajax调用之前设置一些内容。

您可以使用以下方法解决问题:

jQuery.ajaxSetup({
  success: function(data) {
    // NOTE: data must not necessarily be a string,
    // depends on the requested / returned type
    if (data === "not_logged_on") {
      window.location = "?login";
    }
  }
});

这应该符合您的需求。

答案 1 :(得分:0)

ajaxPrefilter命令允许您在发送之前修改Ajax请求。它无法访问响应,因为请求尚未发生。

我相信您正在寻找ajaxSuccessajaxComplete事件,这些事件分别在Ajax调用成功完成或完成时触发。它们具有xhr参数,其中包含请求的结果,您的事件处理程序可以检查和使用该参数。