ajax的post提交參數長度超出限制的解決辦法

ajax的post提交參數長度超出限制的解決辦法

 


 
var imgData = $("img").toDataURL();
 
$.post(url,{imgData:imgData},function(){
 
})
 這是一段提交圖片的代碼,一般的圖片base64都可以提交。有時候會遇到由於字符串較長所以,提交失敗。post的數據大小在3M以上,查閱網上資料說,最大可以提交2M,也有說post提交無限制,是服務器的設置問題。

解決方案一:

修改服務器的maxPostSize的值。

maxPostSize設置爲0是沒有效果的,設置爲一個指定大小是有效果的,如設置爲8M大小。maxPostSize="8000000"。
解決方案二:

還有一種辦法,post請求json, data : "{xxxx"+xxxx"}";這類提交後臺,最後通過request.getReader()來獲取流信息,解析還原,這個方法也能夠解析到。

解決方案三:

img=img.split(',')[1];
img=window.atob(img);
var ia = new Uint8Array(img.length);
for (var i = 0; i < img.length; i++) {
  ia[i] = img.charCodeAt(i);
};
var blob=new Blob([ia],
 {type:"image/png"});
var formdata=new FormData();
formdata.append('file',blob);
$.ajax({
  url : url,
  data :  formdata,
  processData : false,
   contentType : false,
   dataType: 'json',
  type : "POST",
  success : function(data){
}
});

 


解決方案四:

tomcat server.xml 發現設置了maxPostSize="1024" 這個參數
 

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"  maxPostSize="0"/>
<!--tomcat:默認大小2097152,當maxPostSize=0時,不限制;maxPostSize=20971520時,爲20M-->  
————————————————

 

發佈了14 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章