这是我个人再编写博客系统的时候,因个人疏忽犯下的低级错误。

不过犯错是一件好事,有助于总结。

1.关于参数前加@RequestBody

如果是使用ajax交互时,必须要加上这个contentType: 'application/json;charset=utf-8'

否则会出现这个异常:

错误信息:org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

不支持这种类型传递,是因为没有在前台进行定义,说明传递的内容必须为json。有些时候特别后台以@RequestBody作为传参时,必须在ajax中加上contentType: 'application/json;charset=utf-8',加上这个意味着你已经将传递的对象定义为json类型,@RequestBody也仅仅支持json类型。所以就很容易理解这个错误的发生原因。特别是我们开发者大军们,其中不乏有这样的人,对于从来没遇到的错误,复制粘贴到百度去搜索,通常前人们遇到过,通过博客的形式记录下来错误信息及其如何解决,及其为什么会发生。但是我们有些朋友只看如何解决,至于为什么会发生从来就不管。

错误信息:org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'email': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'email': was expecting ('true', 'false' or 'null')

这个错误是因为你定义的json对象参数没有写全导致,同时导致这种错误还有就是对于后台以@RequestBody接收参数,必须在ajax中的data对应值中写上JSON.stringify

示例:

这样写就是对的,就不会发生上述的错误

$.ajax({
url:"/blog-web/user/register",
type:"POST",
contentType: 'application/json;charset=utf-8',
data : JSON.stringify(data),
dataType : 'json',
success:function(data){ if(data.returnCode=="333333"){
layui.use('layer', function(){
var layer = layui.layer; layer.alert(data.returnMsg, {icon: 5});
}); }else if(data.returnCode=="222222"){ layui.use('layer', function(){
var layer = layui.layer; layer.alert(data.returnMsg, {icon: 5});
}); }else if(data.returnCode=="111111"){
layui.use('layer', function(){
var layer = layui.layer; layer.alert(data.returnMsg, {icon: 5});
});
}else if(data.returnCode=="000000"){ layui.use('layer', function(){
var layer = layui.layer; layer.alert("请稍后,马上进入"+data.returnMsg,{icon: 1}); });
setTimeout(() => {
view();
}, 10000); } },error:function(){
layui.use('layer', function(){
var layer = layui.layer; layer.alert("有异常,请和管理员联系"); });
}
});

最新文章

  1. [No0000A6]Visual Studio 2015 中的常用命令的默认键盘快捷键-VS2015 Shortcut
  2. WebStorm设置编辑器中的字体大小
  3. Net数值计算MathNet.Numerics类库
  4. Hibernate注解方法使用总结
  5. Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五)
  6. 【Spring-web】AsyncRestTemplate源码学习
  7. 从Storm和Spark 学习流式实时分布式计算的设计
  8. JSP中out.print()、out.println()以及out.write()的区别
  9. 【BCFTOOLS】按样本拆分VCF文件
  10. [转]Ubuntu16.04下ralink rt3290驱动安装
  11. WebApi接口传参
  12. Android中AsyncTask的使用
  13. (转) Dissecting Reinforcement Learning-Part.2
  14. unity 截图 压缩 处理
  15. python 获取进程数据
  16. [剑指Offer]23-链表中环的入口节点
  17. constexpr与常量表达式(c++11标准)
  18. 搭建Kafka开发环境
  19. 网页中嵌入swf文件的几种方法
  20. PKU 2002 Squares(二维点哈希+平方求余法+链地址法)

热门文章

  1. 彻底理解voliate
  2. 【Tomcat】tomcat配置文件详解
  3. visual studio 2013 下ef6 CodeFirst 使用SQL Lite 数据库
  4. php两个多维数组组合遍历
  5. Nginx部署入门
  6. Retrofit+RxJava(1)-在Android Studio中配置
  7. CentOS6.8系统安装Node
  8. Laravel安装教程
  9. 使用python做简单的接口性能测试
  10. leveldb源码分析--SSTable之block