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对象序列化,但是你有可能前后台都执行了系列化,但是后台还是 ...
随机推荐
- Delphi中DBChart的数据库应用
一:属性相关:Series选项: (1)Format页(数据柱的风格) 在Color Each中打勾,就可使用多种颜色显示,color按钮用于设置颜色,Style用于设置图表的风格(Rectangle ...
- 阿里云CentOS7系列一 -- 安装JDK7的方法.
最近因为数据采集以及生产环境冲突.导入windows Server 2008系统经常死机.经讨论决定把采集服务程序和生产服务进行分开.采集程序通过windows Server2008运行.而生产程序通 ...
- Microsoft VS 2008 过期解决方法破解方法
Microsoft VS 2008 过期解决方法电脑上的Microsoft Visual Studio 2008 Team System 试用版提示离过期还有**天.于是百度,搜索结果大多是以下两种解 ...
- thinkphp验证是否登录并跳转
CommonController.class.php <?php namespace Admin\Controller; use Think\Controller; class CommonCo ...
- swift - 字典和集合
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 } p.p2 { margin: 0.0px 0. ...
- Web.xml配置参数详解
1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的 ...
- java中Map和List初始化的两种方法
第一种方法(常用方法): //初始化List List<string> list = new ArrayList</string><string>(); list. ...
- java并发J.U.C AtomicReference VS Volatile
SpinLock实现,摘自并发编程网 package com.juc.simple; import java.util.concurrent.atomic.AtomicReference; /** * ...
- SOAPUI使用教程-从现有的服务创建REST模拟服务
从现有的服务创建REST模拟服务 在您的项目创建一个模拟服务从现有的服务是非常简单的. 右键单击 服务 . 选择 生成模拟服务 . 打开一个对话框窗口. 输入一个描述性的名称. 点击 好吧 . 创建模 ...
- Ubuntu 14.04 更换阿里云源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 sudo vim /etc/apt/sources.list #修改 sudo ...