java post跳转页面_纯JS实现POST方式发送请求到java后台

在使用POI导出echarts统计报表的时候

1.前台请求后台最方便的请求方式是get,但get方式提交参数长度有限制,不适用于提交echarts统计图生成的图片信息。

var picBaseCode=myChart.getDataURL();

通过以上方法获取到echarts统计图的图片信息,picBaseCode是一段字符串类型的编码,内容超出了get提交的参数大小限制。

2.JQuery.Ajax以post形式提交请求

Ajax直接调用后台的下载方法是导出不了文件的,原因是Ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件,无法实现导出。

解决办法:纯JS实现POST方式发送请求到java后台

//导出Excel

function reportExcel(reportType,picBaseCode,unitNames,startDate,endDate,status,delayNum){

var url=webCfg.servePath +"/reportForm/reportExcel";

var params = {

"reportType":reportType,

"picBaseCode":picBaseCode,

"unitNames":encodeURI(unitNames),

"startDate":startDate,

"endDate":endDate,

"status":encodeURI(status),

"delayNum":encodeURI(delayNum)

};

httpPost(url, params);

}

//发送POST请求跳转到指定页面

function httpPost(URL, PARAMS) {

var temp = document.createElement("form");

temp.action = URL;

temp.method = "post";

temp.style.display = "none";

for (var x in PARAMS) {

var opt = document.createElement("textarea");

opt.name = x;

opt.value = PARAMS[x];

temp.appendChild(opt);

}

document.body.appendChild(temp);

temp.submit();

return temp;

}

这段代码就是通过虚拟表单的形式提交post请求,从而实现请求后台,最后又不影响Excel文件流返回页面。

参考资料:https://blog.csdn.net/shiyong1949/article/details/72471294

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值