springmvc与ajax交互常见问题

简介: 这是我个人再编写博客系统的时候,因个人疏忽犯下的低级错误。不过犯错是一件好事,有助于总结。1.关于参数前加@RequestBody如果是使用ajax交互时,必须要加上这个contentType: 'application/json;charset=utf-8'否则会出现这个异常:错误信息:org.

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

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

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("有异常,请和管理员联系");
                        
                  });  
                }
            });

 

目录
相关文章
|
4月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
133 2
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
66 3
|
2月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
66 1
|
3月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
52 3
|
3月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
66 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
4月前
|
前端开发 Java Spring
关于spring mvc 的 addPathPatterns 拦截配置常见问题
关于spring mvc 的 addPathPatterns 拦截配置常见问题
301 1
|
8月前
|
XML 前端开发 JavaScript
使用 AJAX 提升网页数据的动态交互
使用 AJAX 提升网页数据的动态交互
|
5月前
|
XML 存储 前端开发
后端程序员的前后端交互核心-Ajax
后端程序员的前后端交互核心-Ajax
66 6
后端程序员的前后端交互核心-Ajax
|
5月前
|
前端开发 JavaScript Java
Ajax进行异步交互:提升Java Web应用的用户体验
Ajax 技术允许在不重载整个页面的情况下与服务器异步交换数据,通过局部更新页面内容,极大提升了 Java Web 应用的响应速度和用户体验。本文介绍 Ajax 的基本原理及其实现方式,包括使用 XMLHttpRequest 对象发送请求、处理响应数据,并在 Java Web 应用中集成 Ajax。此外,还探讨了 Ajax 如何通过减少页面刷新、实时数据更新等功能改善用户体验。
88 3
|
5月前
|
XML JSON 前端开发
JSON与AJAX:网页交互的利器
JSON与AJAX:网页交互的利器
45 0