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

相关文章
相关标签/搜索