ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)

错误位置:
1.ajax请求报错,跳不进去ajaxSubmit方法
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第1张图片
2.对应的controller如下:
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第2张图片在这里插入图片描述

此时报405的错误
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第3张图片
根据报错提示,type=Method Not Allowed修改程序中controller:
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第4张图片
报415的错。

正确写法:
加上contentType进行json转换:

  1. contentType: "application/x-www-form-urlencoded"用法是springMVC可以自动进行映射,后端方法中的实体类前,不用加@RequestBody

     contentType: "application/x-www-form-urlencoded"
     //请求报文的一种编码格式
    
  2. contentType: 'application/json; charset=UTF-8’用法是将json格式手动进行格式转换完成映射,后端方法中的实体类前,加@RequestBody

    contentType: 'application/json; charset=UTF-8'
    

ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第5张图片
后端controller对应:
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第6张图片
此时json已经自动转换完成,此时报400。

但跳转不过去应该是对象的问题。
查找js中提交表单中各个字段元素(可以用alert在提交表单前对每个字段进行验证)。
发现问题是:表单中的时间格式没有与实体类对应。

js中:
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第7张图片
实体类中:
ajax提交表单报400的错误(使用@RequestBody修改js后报405错误、415错误)_第8张图片
解决问题!

总结

一.注解
1.在类上使用@Controller 注解,在对应的方法上使用@RequestMapping("/路径"),视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

2.若返回json等内容到页面,则需要加@ResponseBody注解,
①此时对应ajax中不用写contentType
②写成自动转换的形式contentType: “application/x-www-form-urlencoded”
③在实体类前加@RequestBody,对应ajax中contentType: ‘application/json; charset=UTF-8’

二.时间格式转换

1.实体类中:

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@Column(name="create_time")
private Date createTime;

其中@Column是数据库中字段对应到实体类中的转换
@DateTimeFormat是将时间转换成所需格式

2.js中:

 var createTime = new Date(data);
 createTime = createTime.pattern('yyyy-MM-dd HH:mm:ss');
 return createTime;

3.contentType的解释
https://www.cnblogs.com/htoooth/p/7242217.html?tdsourcetag=s_pctim_aiomsg

你可能感兴趣的:(js,datatables)