嵌套请求执行拦截器
1 . 这是自定义对象(xjsreq.js):
function xjsReq(service, action, server) {
//.....属性省略
//需要重写方法
// 失败方法
this.onFailure = function() {
.........}
//请求成功执行方法
this.beforeSuccess = function(response) {
//....其他操作
this.onSuccess(xjs_res);
Ext.getBody().unmask();
}
//请求方法
Ajax.request(this.method, "/server.xjs", {
success :this.beforeSuccess,
onSuccess :this.onSuccess,
failure :this.onFailure
}, this.req, {
"Content-Type" :"text/xml;charset=UTF-8"
});
}
}
2.调用上边创建的对象 (在其他js文件内)
var r=new xjsReq('common','getUserInfo');
r.onSuccess=function(xml){
//......其他操作
var req = new xjsReq('common', "getMeta");req.onSuccess = function(xjs_res) {
..........函数体
}
//在外层的onSuccess()函数内调用
}
r.request();3.后台自定义filter()拦截此 /server.xjs 路径
4.执行过程::
当执行到内层 req.request(); 时::先走到request()方法的Ajax.request(this.method, "/server.xjs",callback)这里,但不执行回 调函数. 先把上一次的success()方法执行完,在执行第二次路径拦截后的success()方法