昨天晚上做项目遇到了一个奇怪的问题,我用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错误 解决方法的更多相关文章

  1. SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法

    使用SpringMVC开发的时候,页面如果有日期格式的数据,后台接受也是java.util.Date,则报告400错误 .下面是解决方案的演示示例: 这个是实体类,里面createDate就是java ...

  2. Ajax serialize()提交form表单不能上传file类型

    前台form表单的提交方式有很多种,例如: 1. form表单submit直接提交的方法 2. Ajax提交的方法 3. jquery提交的方法 4. 原生js提交的方法 每一种方法都有它的优势和不足 ...

  3. SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 使用SpringMVC ...

  4. Nginx 反向代理报400错误解决方法!

    如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败,报400错误,解决办法: ...

  5. 解决YII提交POST表单出现400错误,以及ajax post请求时出现400问题

    POST表单400错误: 正确做法: Add this in the head section of your layout: <?= Html::csrfMetaTags() ?> -- ...

  6. AJAX异步提交form表单

    记录: 网上有说怎么做,没说怎么接收,打印了一下数据,记录一下取值: 比如说有如下form: <form id="form1" name="form1" ...

  7. SpringMVC:提交日期类型报400错误解决方法

    方法1:可以使用@ControllerAdvice增强Controller @ControllerAdvice public class BaseControllerAdvice { // 初始化绑定 ...

  8. jquery中ajax序列化提交form表单的几种方法。

    一,ajax主流的方法 $.ajax({ type: 'post', url: 'your url', data: $("form").serialize(), success: ...

  9. ajax提交form表单问题

    form表单提交数据可以省下大量大量获取元素的代码,局部刷新时也可以用ajax提交form表单,但是要先把表单序列化,再把后台javaBean对象序列化,但是你有可能前后台都执行了系列化,但是后台还是 ...

随机推荐

  1. 源码安装php

    php安装扩展源yum install epel-releaseyum updateyum install libmcrypt libmcrypt-devel mcrypt mhash -yyum i ...

  2. 【jquery】基础知识

    jquery简介 1 jquery是什么 jquery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后 ...

  3. SQL删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...

  4. MySql导出数据到csv

    通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/test.csv' fields ...

  5. .net学习笔记----HttpRequest,WebRequest,HttpWebRequest区别

    WebRequest是一个虚类/基类,HttpWebRequest是WebRequest的具体实现 HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所 ...

  6. PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置

    PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstrom的一款名 ...

  7. GruntJS学习(转)

    GruntJS 是基于JavaScript的命令行构建工具,它可以帮助开发者们自动化重复性的工作.你可以把它看成是JavaScript下的Make或者Ant.它可以完成诸如精简.编译.单元测试.lin ...

  8. Nginx+FastCGI运行原理

    Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用.FastCGI接口在Linux下是socket(这个socket可以是文件socket,也可 ...

  9. 安装sqoop

    安装sqoop 1.默认已经安装好java+hadoop 2.下载对应hadoop版本的sqoop版本 3.解压安装包 tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-a ...

  10. jquery 回车事件

    简单地记下jquery实现回车事件,代码如下: 全局: $(document).keydown(function(e){ if(e.keyCode==13){ $(".login-li in ...