如何给ajax对象传参数并重新发起请求

由于页面中存在较多ajax查询,并且使用了$.when(),因此将每个ajax定义为对象。如:

var a1 = $.post({
        url : '/report/A/rank/1',
        data: p1,
        contentType:'application/json;charset=UTF-8',
        dataType : 'json',
        success : function(data, textStatus, jqXHR) {}
    });
var a2 = $.post({
        url : '/report/A/rank/2',
        data: p1,
        contentType:'application/json;charset=UTF-8',
        dataType : 'json',
        success : function(data, textStatus, jqXHR) {}
    });
$.when(a1, a2).done(function(r1, r2) {
//此处代码略
});

现在由于另外一些需求,想要动态重新加载a1,a2和$.when(a1, a2),并把传入参数修改为p2。

备选方案:将这3个对象代码封装为1个function进行处理。但是由于页面上已经存在较多ajax并按功能进行了区分封装,如果在此基础上再次进行封装会在一定程序上影响代码的可读性,想问一下有没有简便的调用方式?

阅读 2.8k
1 个回答

先让p1=p2,再执行a1,a2,$.when,如果p1要恢复默认,在when的回调中对p1重新赋值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题