让我从现实生活中的用例开始:
当服务器端身份验证筛选器由于会话过期而尝试将AJAX请求重定向到登录页面时,DWR变得混乱。你想添加一些过滤器
我可能不必解释为什么这种功能会有用;大多数服务器端Web框架都支持拦截器模式,原因与您在客户端上可能需要的类似。
一个(可能是坏的)实现可能涉及将原始XMLHttpRequest对象包装在代理中,该代理接受一些过滤器函数。由于jQuery,Prototype,ExtJS等都已经包装了本机浏览器AJAX对象,这可能是一个额外的步骤。
这可以原生实现吗?有哪些技术挑战?之前有没有这样的事情?
答案 0 :(得分:0)
我已经实现了一些在jQuery环境中部分实现这一点的东西。 jQuery AJAX函数以及error
和success
函数也具有complete
函数。因此,您可以根据返回的状态代码执行此类操作来拦截和重定向:
complete:
function() {
if (data.status == 301 ||
data.status == 302 ||
// etc.
) {
location.replace('error.html')
}
...等。不完全'本地',但在jQuery中相对干净。