前端 发送 Ajax.request(method, url,callback) 嵌套请求,后端 filter 拦截 的过程

嵌套请求执行拦截器

1 . 这是自定义对象(xjsreq.js):

    function xjsReq(service, action, server) {

          //.....属性省略

      //需要重写方法

this.onSuccess = function(response) {   }

// 失败方法

        this.onFailure = function() {

.........
}
//请求成功执行方法
this.beforeSuccess = function(response) {
//....其他操作
this.onSuccess(xjs_res);

Ext.getBody().unmask();

}

        //请求方法

this.request = function() {
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文件内)

扫描二维码关注公众号,回复: 1926548 查看本文章

 var r=new xjsReq('common','getUserInfo');
r.onSuccess=function(xml){

 //......其他操作

 var req = new xjsReq('common', "getMeta");
req.onSuccess = function(xjs_res) {
  ..........函数体

  }

          //在外层的onSuccess()函数内调用

 req.request();

}

r.request();

3.后台自定义filter()拦截此 /server.xjs 路径

4.执行过程::

    当执行到内层  req.request(); 时::先走到request()方法的Ajax.request(this.method, "/server.xjs",callback)这里,但不执行回      调函数. 先把上一次的success()方法执行完,在执行第二次路径拦截后的success()方法

猜你喜欢

转载自blog.csdn.net/qq_37377082/article/details/80935583