2012-03-06 23 views
2

具有以下形式sumbtted請求的提交的表單不編碼+的‘獲取’

<form target="dialogiframe" action="ConfigUpdate.cvx" id="TestForm" 
    name="TestForm" method="get"> 
    <input name="test" type="text" size="40" value="A Sum 1+2=3"/> 
    <input type="submit" value="Set" /> 
</form> 

的參數被編碼如下

test=A+Sum+1+2=3 

該被解碼後給出「A Sum 1 2 = 3」的錯誤值,因爲參數中的+未編碼(既不是=),也將其轉換爲空格。

如果我改變方法張貼然後參數正確編碼爲

test=A+Sum+1%2B2%3D3 

,然後正確地轉換。

我知道我應該使用POST,並且確實正在瀏覽我的頁面並將它們轉換,但是我在表單定義中丟失了什麼以使GET編碼correclty?

與IE8和FF10,在<頁!DOCTYPE HTML >

回答

2

測試,我相信這是一個已知的問題與使用GET的形式方法。通常,您應該在表單中使用POST方法。

來源:http://www.cs.tut.fi/~jkorpela/forms/methods.html

該負責人建議說,「GET」應當用於當且僅當表單處理是冪等,這通常意味着一個純粹的查詢方式。通常建議這樣做。然而,與長URL和非ASCII字符集相關的問題有可能使得甚至爲了冪等處理而使用「POST」。

+0

感謝您的信息,有趣的閱讀,我已經交換了我的表格這就是GET到POST,有些已經是POST自從發送JSON對象。這些問題中的另一個,我必須記住,對於網絡發展來說是新鮮事,似乎花費了大部分時間與不一致的代碼編寫應用程序(已經使用mootools來幫助)。 – Dampsquid 2012-03-06 11:24:06