ajax post提交form表单 报400错误 解决方法
昨天晚上做项目遇到了一个奇怪的问题,我用ajax提交一个form表单,后台Java方法用的是一个实体接,但是他根本不进方法体中,直接给我一个400的错误,一开始我以为是我路径的问题(尴尬),结果直接访问那个请求的@requestMapping发现没有问题,竟然进入了我的方法体中,这就可以说明两个问题了,第一个问题就是:跟我的请求地址没有关系,第二个问题就是肯定跟我的请求所带的参数有关系,上网查了一下资料,因为我的一次增加字段比较多,就用的是$("#fromId").serialize()的方法序列化参数,发现这种方法将所有的东西都变成了字符串,网上都说我的问题是因为传到后端的参数类型不符合,然后我就试了一下,只带一个字符型的参数直接请求地址,他竟然还不行,给我报错说不能够将null(就是我带的参数的那个字段)保存进入数据库,这下我不淡定了,我明明就将该字段当作参数带着了,又是一会的纠结,突然发现,我用的字段是大写的,而实体中的是小写,我就试了一下,他大爷的,过了,然后我就疯狂的该我的大小写,五十多个字段,手都快废了我,改好了怀着期待的心情点击保存,发现还是过不去,我想骂人了,想起来还有可能就是参数类型不符合,然后我就讲实体中的所有的date类型,int类型,bigdecimal类型的set方法的参数全部改成String,然后在方法体中给转换过来赋值,进过一番搜素,确定无误之后,再次点击保存,还是过不去,差点砸电脑了,一个保存用了我一个晚上,静下心我又将所有的参数给打印出来,用了最笨的方法,一个一个的试,看看到底是那些过不去,有事一番苦战,终于找到了让我奔溃的原因,在我刚才改变字段大小写的时候,因为字段太多,把某一个字段弄重复了。。。。。最后终于给搞好了。
虽然花费了我一个晚上的时间就搞了这么一个破东西,还是一个最简单的保存功能,但是我也学到了一点东西:
1、虽然程序员免不了经常用粘贴复制,但是一定要细心了,特别是在重复的粘贴复制时。
2、越是简单的东西用着就越要小心,不然他崩溃都不跟你说什么原因,直接给你一个400让你慢慢排查问题去。
3、form表单提交用实体接收时,需要将input或者select中的name属性的字符和实体中的字符完全保持一直包括大小写,不是和数据库中的字段保持一致。
4、form的序列化提交表单带过去的参数全都被序列化成了字符串类型,后端的字段类型如果是int、date等类型的需要手动将set方法给转换一下,转换方法上面一大堆中有。
ajax post提交form表单 报400错误 解决方法的更多相关文章
- SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法
使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java ...
- Ajax serialize()提交form表单不能上传file类型
前台form表单的提交方式有很多种,例如: 1. form表单submit直接提交的方法 2. Ajax提交的方法 3. jquery提交的方法 4. 原生js提交的方法 每一种方法都有它的优势和不足 ...
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC ...
- Nginx 反向代理报400错误解决方法!
如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误,解决办法: ...
- 解决YII提交POST表单出现400错误,以及ajax post请求时出现400问题
POST表单400错误: 正确做法: Add this in the head section of your layout: <?= Html::csrfMetaTags() ?> -- ...
- AJAX异步提交form表单
记录: 网上有说怎么做,没说怎么接收,打印了一下数据,记录一下取值: 比如说有如下form: <form id="form1" name="form1" ...
- SpringMVC:提交日期类型报400错误解决方法
方法1:可以使用@ControllerAdvice增强Controller @ControllerAdvice public class BaseControllerAdvice { // 初始化绑定 ...
- jquery中ajax序列化提交form表单的几种方法。
一,ajax主流的方法 $.ajax({ type: 'post', url: 'your url', data: $("form").serialize(), success: ...
- ajax提交form表单问题
form表单提交数据可以省下大量大量获取元素的代码,局部刷新时也可以用ajax提交form表单,但是要先把表单序列化,再把后台javaBean对象序列化,但是你有可能前后台都执行了系列化,但是后台还是 ...
随机推荐
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- [转载] Java CheckBoxTree
代码基本上是copy的.只是在使用上有一些自己的想法. 先上code吧! 虽然别的地方也有.但是还是转一份给自己. 出处:http://blog.csdn.net/joy_125/article/de ...
- webstorm基础使用总结
webstorm基础使用总结(不仅仅是一堆快捷方式) 注:原文链接: 水车 : 本次写的内容是我想到那个就写那个,都是本人平时写代码的时候的一些习惯,未必是最好的,贵在交流! 1: shift+e ...
- C# RSA加密解密
1.解析密钥 /// <summary> /// 把二进制密钥解析成RSACryptoServiceProvider /// </summary> /// <param ...
- KNN识别图像上的数字及python实现
领导让我每天手工录入BI系统中的数据并判断数据是否存在异常,若有异常点,则检测是系统问题还是业务问题.为了解放双手,我决定写个程序完成每天录入管理驾驶舱数据的任务.首先用按键精灵录了一套脚本把系统中的 ...
- Xcode最好用的日志打印方法
一般打印日志都是用的系统自带的NSLog来打印的,假如项目做完了,要上线了,这些打印的日志就会很浪费性能,网上有很多的解决办法,我也是感觉网上的还是有点不方便,所以就自己又修改了一下,分享给大家. 网 ...
- dbca建库sys用户被锁
奇怪问题:dbca建库sys用户被锁, 点击密码管理报账户被锁 而且在服务器上无法进行操作系统验证登陆,经过一番检查发现oracle用户和grid用户没有在dba组里 解决: 1.把oracle用户和 ...
- mysql导出excel文件的几种方法
方法一 用mysql的命令和shell select * into outfile './bestlovesky.xls' from bestlovesky where 1 order by id d ...
- UWP Composition API - 锁定列的FlexGrid
需求是第一列锁定,那么怎么让锁定列不跟着滚动条向做移动呢? 其实很简单,让锁定列跟scrollviewer的滚动做反方向移动. 先看一下这个控件的模板,嗯,其实很简单,就是ListView的模板,不同 ...
- EXT5 时间框控制(开始时间不能大于结束时间)
1.网上看的大部分代码都是利用vtype : 'dateRange' EXT的这个属性,但是可能由于环境问题还是怎么样,我就是实现不了想要的效果. 然后研究了一下,在时间框的listeners 监听 ...