异常信息记录_2019-11-16
HTTP Status 400 – 错误的请求
前两天写了一个关于时间格式转换的400错误的请求的博客,给公司的大佬看了一下,被吐槽……特此修改一下。
1、问题分析
HTTP 400的状态码,可以统称前后台对应不上,主要有两种形式:
一、bad request 意思是 “错误的请求”

> ==Type== Status Report > ==描述== 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。 > Apache Tomcat/8.5.46
二、invalid hostname 意思是 “不存在的域名/无效的主机名”。
但是基于本仙女目前并没有遇到过这种情况,所以等以后遇到了再来补充。
2、解决方案
①前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致
前后台参数类型或者名称不一致的解决方案就是保证参数的类型和名称一致即可。下面将以一个小项目中出现的时间类型转换问题作为栗子具体解析一下
解决方法
解决问题的思想无非就是把String类型的日期格式转成Date类型,方案有两种:
A、自定义类型转换器
(1)写一个自定义类型转换器,定义转换格式

(2)在springmvc.xml文件中配置自定义类型转换器

(3)在Controller中接收字符串,手动转换成Date类型再设置到封装的实体类中去。

B、直接在实体类上添加注解:
@DateTimeFormat(pattern = "yyyy-MM-dd")

这种方法既简单又实用,不需要配置文件也不需要手动写转换器,体现了注解的强大。
②前端提交ajax请求的数据应该是json格式字符串的,但是却没有将对象转换成json格式的字符串
let = 从Controller层返回的对象; //将对象转换成json格式的字符串 let dataAsJson = JSON.stringify(data);
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207004.html原文链接:https://javaforall.net
