有的時候需要在js中建立form向controller送出資料,下面是在工作中遇到的一些問題和解決辦法:
簡單的用jquery建立form:
函數封裝送出:
其中args為格式:{key:value,key1:valye2…},可以一個參數一個參數傳,也可以直接傳一個jsonString, 在controller中再轉化為map,個人更喜歡後一種方法,直接用json的序列化工具(jsonmapper之類),反序列為map,再取值。
上面兩種都是jquery建立form,在chrome下可正常使用,但是在firefox下不行,百度之,發現原因是:
經過研究發現,FireFox在送出頁面表單時要求頁面有完整的标簽項,即<code><html><head><title></title></head><body><form></form</body</html></code>這樣的标簽結構
解決方法很簡答,給把建立的form添加到一個現存節點即可。
上面的函數修改後代碼如下:
另外還有一個問題,就是關于送出資料後是從本頁面跳轉還是新打開頁面