window.open()提交数据,参数过长会限制。请改成post提交

解决方法1: 将下边这段代码放入你window.open的那个js中。调用即可!
参数解释:url传入请求路径(var url = ip+端口+"/Jcdwjccr/jcrzhxxcxdy?grxx="+grxx1)
         params默认穿空就行,参数都放在url中function openPostWindow(url, params) {
  
      var newWin = window.open(),
      formStr = '';
      //设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
       formStr = '
' + '' + '
'; newWin.document.body.innerHTML = formStr; newWin.document.forms[0].submit(); return newWin; }

具体代码如下:

window.open()提交数据,参数过长会限制。请改成post提交_第1张图片

解决方法2: 可以换一种思路,如果请求参数太长,例如:base64编码的图片(超8000字符),可以将base64劈成短字符,我是劈成5000传一次。3000传一次, 这样总可以了吧,大部分时候也不至于能超8000的字符了吧,在contoller中,将参数放到全局变量中,最后一次window.open请求contoller的时候,直接从全局变量取就可以了。直接上图:

js中:

参数解释:imgDataUrl为base64编码的图片(超8000字符串),imgzc和imgzc2目的是将imgDataUrl存到contorller全局变量中,方便最后window.open方法用。

window.open()提交数据,参数过长会限制。请改成post提交_第2张图片

 

分析: 第一种方法传的参数如果太长,例如8000字符,就测不过去,网上说是服务器限制了,建议用第二种方法,本地验证较快。

 

 

你可能感兴趣的:(hhtp传输数据问题)