.ajaxPrefilter()jQuery

.ajaxPrefilter()jQuery,jquery,ajax,Jquery,Ajax,我想过滤所有ajax响应。我找到了这个jQuery函数:jQuery.ajaxPrefilter()。 有人能告诉我这是怎么回事吗? 当用户没有登录时,我必须捕获php响应(fe:“not_logged_on”),因为在正常情况下它必须这样做 例如: jQuery.ajaxPrefilter(function( response ){ if ( response == 'not_logged_on' ) window.location = "?login"; }) 我希望我

我想过滤所有ajax响应。我找到了这个jQuery函数:jQuery.ajaxPrefilter()。 有人能告诉我这是怎么回事吗? 当用户没有登录时,我必须捕获php响应(fe:“not_logged_on”),因为在正常情况下它必须这样做

例如:

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

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

我建议使用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";
    }
  }
});
这应该适合您的需要。

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

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