这篇文章主要介绍了HTTP 415错误-不支持的媒体类型详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
前段时间在使用@请求体注解的时候遇到了一个以前没遇到过的错误,HTTP不支持的媒体类型?这个是个什么鬼,@ResponseBody可以正常工作而一使用@请求体来进行交互就会报这个错误。一直请求不到控制器,我开始总以为是路径或者json格式不对的问题,上网查资料大多也说的是这个问题。可是我已经写了
数据:JSON.stringify(用户),
数据类型:' json ',
内容类型:'应用程序/JSON;字符集=UTF-8 ',
按照网上的办法也一直不管用,百思不得其解。于是继续在网上找资料,
网上分析原因很多,但找了很久都没解决,基本是以下几类:
springmvc添加配置、注解;
pom.xml添加杰克逊包引用;
埃阿斯请求时没有设置内容类型为应用程序/json
发送的请求内容不要转成JSON对象,直接发送JSON字符串即可
各种办法都尝试了一遍,还是没有能解决问题;
脚本
jQuery(函数($){
var urlStr=' %=请求。getcontextpath()%/user/GetUser ';
定义变量用户={
id' : 6,
用户名":"小红,
密码':' 123 ',
"年龄":12岁
};
$.ajax({
url : urlStr,
类型:' POST ',
数据:JSON.stringify(用户),//转JSON字符串
数据类型:' json ',
内容类型:'应用程序/JSON;charset=UTF-8 ',//内容类型很重要
成功:功能(结果){
console.log(结果);
//alert(结果);
//data=eval((' result '));
//alert(数据);
$('#a ').html(结果。用户名);
}
});
});
/脚本
造了一个简单是数据来测试,还是不行。
包com。cn。hnust。控制器;
导入javax。servlet。http。http servlet请求;
导入org。spring框架。豆子。工厂。注释。自动连线;
导入org。spring框架。刻板印象。控制器;
导入org。spring框架。ui。模型;
导入org。spring框架。网络。绑定。注释。请求正文;
导入org。spring框架。网络。绑定。注释。请求映射;
导入org。spring框架。网络。绑定。注释。请求方法;
导入org。spring框架。网络。绑定。注释。响应正文;
导入com。cn。hnust。域。用户;
导入com。cn。hnust。服务。iuser服务;
@控制器
@RequestMapping('/user ')
公共类用户控制器{
@自动连线
私有IUserService用户服务;
@RequestMapping('/showUser ')
公共字符串toIndex(HttpServletRequest请求,模型型号){
//int userId=integer。解析int(请求。getparameter(' id ');
//用户User=this。用户服务。getuser byid(userId);
//model.addAttribute('user ',用户);
返回”显示用户”;
}
@请求映射(value='/GetUser ',method=RequestMethod .帖子)
public @ResponseBody
用户GetUser(@RequestBody用户用户){
用户。设置用户名('魏');
返回用户;
}
}
控制器也很简单,可是就是请求不到控制器方法。于是我继续在网上寻找资料,直到看到一篇博客,才找到了问题的解决办法。
原来是杰克逊的依赖问题,spring3.x和spring4.x是不同的:
spring3.x是org。spring框架。http。转换器。JSON。mappingjacksonhtpmessageconverter
spring4.x是org。spring框架。http。转换器。JSON。映射Jackson 2 http消息转换器
具体可以查看弹簧网的冲突确认,哪个存在用哪个!
在配置视图解析器的时候应该指定响应的版本,于是我将springmvc的配置文件改为:
豆
' org。spring框架。网络。servlet。查看。contentnegotiatingviewrolver '
属性名称='订单'值='1' /
属性名='媒体类型'
地图
条目键='json '值='application/json' /
条目关键字='xml '值='应用程序/xml' /
entry key=' htm ' value=' text/html '/
/地图
/属性
属性名='默认视图'
目录
!- JSON视图-
豆
' org。spring框架。网络。servlet。查看。JSON。'映射Jackson 2 JSON视图'
/bean
/列表
/属性
属性名称='ignoreAcceptHeader '值='true' /
/bean
只会
MappingJacksonJsonView
代替
MappingJackson2JsonView
关于HTTP 415错误-不支持的媒体类型的详细解释,本文到此为止。有关HTTP 415错误-不支持的媒体类型的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。