我想过滤所有ajax响应。我发现了这个jQuery函数:jQuery.ajaxPrefilter()。 谁能告诉我这是如何工作的? 当用户没有登录时,我必须抓住那个php响应(fe:“not_logged_on”),因为它必须按照正常情况进行操作。
例如:
jQuery.ajaxPrefilter(function( response ){
if ( response == 'not_logged_on' )
window.location = "?login";
})
我希望我的问题可以理解。
答案 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请求。它无法访问响应,因为请求尚未发生。
我相信您正在寻找ajaxSuccess
或ajaxComplete
事件,这些事件分别在Ajax调用成功完成或完成时触发。它们具有xhr
参数,其中包含请求的结果,您的事件处理程序可以检查和使用该参数。