window.location.href可以简单粗暴的实现文件下载,Excel导出等。但是该方式传参数有着太多不安全因素,例如:将一些重要信息暴露给地址栏亦或者是由于参数过长导致无法访问等等。
以下是使用post代替window.location.href的实现,大体思路是将参数封装成一个隐藏的Form,然后form.submit()的方式来提交。
var url = "purCheckStockInfo/stock_inventory_export_Excel"; var str = JSON.stringify(SEL_OBJ); //要传递的参数,JSON格式 var $form= $(document.createElement('form')).css({'display':'none'}).attr("method","POST").attr("action",url); var $input= //name值与后台Controller方法的参数名同名 $(document.createElement('input')).attr('type','hidden').attr('name','in').val(str); $form.append($input); $("body").append($form); $form.submit(); @RequestMapping("/purCheckStockInfo/stock_inventory_export_Excel") @ResponseBody public void stockInventoryExportExcel(HttpServletRequest request,String in,HttpServletResponse resp) { PurProInfoBo purProInfoBo = JsonUtils.toObject(in, PurProInfoBo.class); purCheckStockInfoService.stockInventoryExportExcel(resp,purProInfoBo); }