1.系统是ssm框架,前台传递js数组之后再返回当前页刷新数据,使用window.href不合适太长的参数,普通的jQuery post请求又不会跳转页面,所以从网上大佬看的解决方案是设置表单post方式提交
function createDocument1(obj) {
$.ajax({
url: "xxx1.do",//
type: "post",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(obj),
dataType: "json",
success: function (data) {
if (data.success || data.success == true || data.success == "true") {
layer.msg('生成成功');
var url = "xxx2.do";//需要请求后台跳转页面的链接
var params ={"aa" : "aa","bb" : "bb","cc" : new Array()};
post(url,params);
}else {
layer.msg('生成失败');
}
},
error: function (e) {
alert(e);
}
});
}
//post请求通用跳转页面
function post(url, params) {
// 创建form元素
var temp_form = document.createElement("form");
// 设置form属性
temp_form .action = url;
temp_form .target = "_self";
temp_form .method = "post";
temp_form .style.display = "none";
// 处理需要传递的参数
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
temp_form .appendChild(opt);
}
document.body.appendChild(temp_form);
// 提交表单
temp_form .submit();
}
2.后台controller方法
@RequestMapping(value = "xxx2.do")
public ModelAndView xxx2(HttpServletRequest request, String aa, String bb,String[] cc) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/xxx");
return modelAndView;
}