ajax post提交form表單 報400錯誤 解決方法

昨天晚上作項目遇到了一個奇怪的問題,我用ajax提交一個form表單,後臺Java方法用的是一個實體接,可是他根本不進方法體中,直接給我一個400的錯誤,一開始我覺得是我路徑的問題(尷尬),結果直接訪問那個請求的@requestMapping發現沒有問題,居然進入了個人方法體中,這就能夠說明兩個問題了,第一個問題就是:跟個人請求地址沒有關係,第二個問題就是確定跟個人請求所帶的參數有關係,上網查了一下資料,由於個人一次增長字段比較多,就用的是$("#fromId").serialize()的方法序列化參數,發現這種方法將全部的東西都變成了字符串,網上都說個人問題是由於傳到後端的參數類型不符合,而後我就試了一下,只帶一個字符型的參數直接請求地址,他居然還不行,給我報錯說不可以將null(就是我帶的參數的那個字段)保存進入數據庫,這下我不淡定了,我明明就將該字段看成參數帶着了,又是一會的糾結,忽然發現,我用的字段是大寫的,而實體中的是小寫,我就試了一下,他大爺的,過了,而後我就瘋狂的該個人大小寫,五十多個字段,手都快廢了我,改好了懷着期待的心情點擊保存,發現仍是過不去,我想罵人了,想起來還有可能就是參數類型不符合,而後我就講實體中的全部的date類型,int類型,bigdecimal類型的set方法的參數所有改爲String,而後在方法體中給轉換過來賦值,進過一番搜素,肯定無誤以後,再次點擊保存,仍是過不去,差點砸電腦了,一個保存用了我一個晚上,靜下心我又將全部的參數給打印出來,用了最笨的方法,一個一個的試,看看究竟是那些過不去,有事一番苦戰,終於找到了讓我奔潰的緣由,在我剛纔改變字段大小寫的時候,由於字段太多,把某一個字段弄重複了。。。。。最後終於給搞好了。程序員

雖然花費了我一個晚上的時間就搞了這麼一個破東西,仍是一個最簡單的保存功能,可是我也學到了一點東西:ajax

一、雖然程序員免不了常常用粘貼複製,可是必定要細心了,特別是在重複的粘貼複製時。數據庫

二、越是簡單的東西用着就越要當心,否則他崩潰都不跟你說什麼緣由,直接給你一個400讓你慢慢排查問題去。後端

三、form表單提交用實體接收時,須要將input或者select中的name屬性的字符和實體中的字符徹底保持一直包括大小寫,不是和數據庫中的字段保持一致。app

四、form的序列化提交表單帶過去的參數全都被序列化成了字符串類型,後端的字段類型若是是int、date等類型的須要手動將set方法給轉換一下,轉換方法上面一大堆中有。orm

相關文章
相關標籤/搜索