form表單提交,後臺獲取不到參數值問題(前題是頁面參數正常沒有錯誤)

 

一、form表單post提交,提交參數過多,獲取不到參數值

問題:在一個form表單中,引入過多的頁面,須要提交的參數過多,此時後面必定參數的值後臺是獲取不到的html

解決:在form標籤添加enctype='multipart/form-data'web

二、form 表的post提交,其中一個超多數據的input標籤在後臺獲取數據(在網上找到的可能的另外一個緣由)

在開發中發現一個bug,前臺提交的數據到後臺獲取的時候被截斷了,前臺代碼chrome

  1. <form id="myform" action="" method="post">  
  2.        <input  name="a" value="" />  
  3. </form>  


我用js給input標籤賦值,這個值長度很長很長(如:一段超長的html代碼),$("input[name='a']").val(很長的字符串。。。);這個時候form表單提交$("#myform").submit(),在後臺獲取a的值是被截斷的,不完整。很納悶,在前臺console.log($("input[name='a']").val());發現,在前臺給a標籤賦值的時候,數據已經被截斷了。(測試瀏覽器chrome)。input標籤的長度通常的無限制的,這個我就不知道問題出在哪兒了,多是web容器本身的限制防止內存溢出吧。但問題總得解決,首先是想辦法將給a賦值是正確完整的,我嘗試將input標籤的type換成hidden,結果ok,console的結果:a的值是正確完整的,但是到後臺取不到值。。。。。。。。。。。。。。。。。。。尼瑪,若是將a 的值的長度設置的比較短的話,後臺就能正常獲取到值的。在嘗試了不少辦法後,依然無果,這個時候我在想,form能提交附件,附件內容但是很大的,我將form表單的格式換一下,添加enctype='multipart/form-data',測試ok,經過!真尼瑪蛋疼瀏覽器

 

修改後的form表單post

  1. <form id="myform" action="" method="post" enctype="multipart/form-data">  
  2.      <input type="hidden" name="a" />  
  3. </form>  


最後得出的結論測試

 

1:input標籤type=text在chrome瀏覽器下是有長度限制的,具體有多長沒測試過,其餘瀏覽器下什麼狀況也沒測試spa

2:input標籤type=hidden的長度沒有限制,能容納很長很長的字符串.net

3:對於超長字符串的form表單提交,須要以附件的格式提交,在form標籤添加enctype='multipart/form-data'。orm

相關文章
相關標籤/搜索