解决方法1: 将下边这段代码放入你window.open的那个js中。调用即可! 参数解释:url传入请求路径(var url = ip+端口+"/Jcdwjccr/jcrzhxxcxdy?grxx="+grxx1) params默认穿空就行,参数都放在url中
function openPostWindow(url, params) { var newWin = window.open(), formStr = ''; //设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据 formStr = '<form style="visibility:hidden;" method="POST" action="' + url + '">' + '<input type="hidden" name="params" value="' + params + '" />' + '</form>'; newWin.document.body.innerHTML = formStr; newWin.document.forms[0].submit(); return newWin; }
具体代码如下:
解决方法2: 可以换一种思路,如果请求参数太长,例如:base64编码的图片(超8000字符),可以将base64劈成短字符,我是劈成5000传一次。3000传一次, 这样总可以了吧,大部分时候也不至于能超8000的字符了吧,在contoller中,将参数放到全局变量中,最后一次window.open请求contoller的时候,直接从全局变量取就可以了。直接上图:
js中:
参数解释:imgDataUrl为base64编码的图片(超8000字符串),imgzc和imgzc2目的是将imgDataUrl存到contorller全局变量中,方便最后window.open方法用。
分析: 第一种方法传的参数如果太长,例如8000字符,就测不过去,网上说是服务器限制了,建议用第二种方法,本地验证较快。