springmvc与ajax交互常见问题
这是我个人再编写博客系统的时候,因个人疏忽犯下的低级错误。
不过犯错是一件好事,有助于总结。
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("有异常,请和管理员联系");
});
}
});
springmvc与ajax交互常见问题的更多相关文章
- SpringMVC与Ajax交互
1 springmvc和ajax的交互 1.1 请求字符串响应json 客户端发送的数据:key=value&key1=value1 响应回来:json 1.1.1json的支持jar包 1 ...
- SpringMVC和AJAX交互
在实际开发中我们经常需要前后台交互,那么springmvc与ajax之间交互这里记录下在实际开发中遇到的细节问题. jsp页面: <fieldset id="login" s ...
- content-type常见类型辨析(以ajax与springmvc前后端交互为例)
博客搬家: content-type常见类型辨析(以ajax与springmvc前后端交互为例) 在http报文的首部中,有一个字段Content-type,表示请求体(entity body)中的数 ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- springmvc实现json交互 -requestBody和responseBody
json数据交互 1.为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 2. ...
- SpringMVC实现AJax以及RestFull风格
RestFull风格就是url路径中不能出现?不能带参数,如https://www.baidu.com/user/item/1234这个格式,也叫url资源定位 1.需要在web.xml中开启put, ...
- ThinkPHP中使用ajaxReturn进行ajax交互
以管理员登录为例来介绍下$this->ajaxReturn与模板页进行ajax交互使用方法 首先看PHP控制器的处理,在application/Admin/Controller/LoginCon ...
- struts2 的验证框架validation如何返回json数据 以方便ajax交互
struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror />才能取出,(EL应该也可以). 如果使 ...
- SpringMVC——对Ajax的处理(包含 JSON 类型)
一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON ...
随机推荐
- 胜利大逃亡(杭电hdu1253)bfs简单题
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 创建Cordova项目 报错Error: Unhandled "error" event
cordova版本7.0以上版本 创建cordova项目错误信息 Error: Unhandled "error" event. ( Error from Cordova Fet ...
- Maven 那些破事
deploy 只上传了pom 晚上输命令,打算打包上传到本地库里,然后去服务器上部署新版本 mvn clean package deploy 结果看着mvn的build过程只是上传了pom,去库服务器 ...
- 初学HTML-3
标题标签:<h#>...</h#>,从h1到h6,字号由大变小. 段落标签:<p>...</p>,在浏览器中独占一行. 空格:" " ...
- 锋利的Jquery之插件Cookie记住密码
先下载Jquery cookie js ,下载路径: http://plugins.jquery.com/cookie/ 记住,jquery的包要放在cookie的包前面,否则会产生异常 <!D ...
- enum 的使用方法(java)
作者QQ:1095737364 QQ群:123300273 欢迎加入! enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java ...
- scikit-learn画ROC图
1.使用sklearn库和matplotlib.pyplot库 import sklearn import matplotlib.pyplot as plt 2.准备绘图函数的传入参数1.预测的概率值 ...
- Object.assign简单总结
定义 Object.assign方法用来将源对象source的所有可枚举属性复制到目标对象target.至少需要两个对象作为参数,第一个参数为源对象,后面的均为目标对象.(以下用source代指源对象 ...
- (二)收集的MongoDB命令集合
一:针对整个数据库的 1."show dbs" 命令可以显示所有数据的列表. 2. "db" 命令可以显示当前数据库对象或集合. 3."use&quo ...
- css 文本两行显示,超出省略号表示
重点:text-overflow: ellipsis;只对display:inline:起作用 例子: <span class="a">我说说<b class= ...