415 – 不支持的媒体类型

415 – 不支持的媒体类型

在做springmvc进行json数据交互时,自己测试问题如下:

前台代码:


  var params = '{"id": 1,
                    "name": "测试商品", 
                    "price": 99.9,
                    "detail": "测试商品描述",
                    "pic": "123456.jpg"}';
                    

    $.post("${pageContext.request.contextPath}/json.action",params,function(data){

    },"json"); 
		

后台代码:

	@RequestMapping("/json.action")
	public @ResponseBody Items 
		parseJson(@RequestBody Items items) {
		//导入springmvc支持json的3个jar包
		//@RequestBody 将json转化为java对象,可以进行参数封装
		//@Response 会将java对象转化为json字符串进行返回
		System.out.println(items);
		return items;
	}

再使用$.post()方法进行ajax请求时,页面报出错,

在这里插入图片描述

而后将前台页面代码改成用$.ajax()就可以成功

改后的前台代码:

$.ajax({
			url:"${pageContext.request.contextPath}/json.action",
			data:params,
			contentType:"application/json;charset=UTF-8",//指定发送的数据格式
			type:"post",
			dataType:"json",
			success:function(data){
				alert(data.name)
}}

总结:

通过F12,查看request请求

使用$.post(), Content-Type: application/x-www-form-urlencoded,传送给后台的数据格式并不是json

而使用$.ajax(), Content-Type可以自己在方法里面进行指定

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值