永发信息网

前台JSON数据传送数据到后台,报400错误怎么解决

答案:2  悬赏:50  手机版
解决时间 2021-11-07 06:09
前台JSON数据传送数据到后台,报400错误怎么解决
最佳答案
原因:
在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。
1:一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如你的javabean中有定义了Date类型和int类型的成员变量,导致转化器在把json数据转化成bean时不能转化。
2:log4j的配置文件里错误将部分log打为Info级别所致
3:要返回json的却忘了加@ResponseBody
4:ajax请求的连接后边忘了加参数,如url:basePath + "kscj/unbill.do?jqid="+jqids

5:传了非实体bean属性的参数过来。
6:controller指定的参数名称与前台不一致,如:使用了@RequestParam(value="userName")而前台必须指定该名称

@RequestMapping("/hello.do")
public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value="userName")String user ){
request.setAttribute("user", user);
return "hello";
}

也可以指定该参数是非必须的required=false,如:

@RequestMapping("/hello.do")
public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value="userName",required=false)String user){
request.setAttribute("user", user);
return "hello";
}

解决方法:
1:把实体类的javabean里边的类型都改成string类型,在配置SQL语句时用数据库函数to_date或者to_number转化的,如果再java中用到这个字符串类型的日期的话,有必要的话,就用For format=new SimpleDateFormat("yyyy-MM-dd"),format.parse()来转换。
2:在对应的实体类的对应的非字符串类型的变量的setter方法中传入string类型的,然后在里边用SimpleDateFormat或者Integer进行转化。
全部回答
用字符串接收,然后再转为json处理
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
白果要怎么炒好吃?
荫德庇佑是什么意思
阅读全文,说说新南非有什么珍贵之宝
你好 麻烦问一下 我的建行信用卡逾期七十多天
小学有学生423人 排成三路纵队前后相邻两排相
形容“呼吸声”的拟声词有哪些?
我的银行嘿户了我的残级不贴还低保能领到吗
求和“死有余辜,活有余罪”相似的句子。
嘉兴精锐,名思,行思,优培哪个好?
打开一个又一个文件夹然后出来满屏的玫瑰花的
当年回到中国的科学家为什么会有那种下场
巴中市公安局交通管理支队车辆管理所(证照办
2016年4月浩姹植啦┦-7阶段怎么过
dnf至高统帅的战火胸甲和世界的支点可以搭配
营山县绥安大道机动车驾驶人科目三考场地址在
推荐资讯
有没有房产中介帮忙卖农村房子的
苹果6p cl是什么版
梦幻65J坐骑怎么做
列文虎克的观察有什么意义
漆祠村地址有知道的么?有点事想过去!
正弦乘以余弦怎么计算
求江苏名校高三单元测试示范卷语文卷(八)(一
诈骗罪判刑后还要还钱吗
wear,bein,都是穿的意思,哪些是强调状
麻花编织皮制手链怎么编
杰佩托把木偶雕刻好后又发现少了什么
2016年福州气温最高多少度
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?