$.ajax 和$.post的区别

$.ajax({ }) 和$.post()(jQuery对原生ajax的封装)同样都是ajax的异步请求:

<button οnclick="sendJson()">原生Json数据交互测试</button>
<button οnclick="sendJson2()">Json数据交互测试</button>
</body>
<script type="text/javascript">
 function sendJson(){
	 $.ajax({
		 url:"${pageContext.request.contextPath }/item/jsontest.action",
		 type:"post",
		 data:'{"id":1,"name":"李思思","price":2300,"createtime":"2017-09-09 12:23:09"}',
		contentType:"application/json;charset=utf-8",
		success:function(data){
			alert(data.id+":"+data.name);
		}

	 })
 }
 function sendJson2(){
	 
	 $.post("${pageContext.request.contextPath }/item/jsontest2.action",
			 {"id":1,"name":"张三","createtime":"2017-09-09 12:23:09"},function(data){
		 alert(data.name);
	 },"json")
 }
</script>

下面说说他们的不同:$.post()携带的参数格式:



注意:此处无@RequestBody (key值与pojo属性名称一致,会映射到对象中去)

//@RequestBody:接收json数据并转换成pojo对象
//@ResponseBody:响应json数据,把java对象转换成json并响应
@RequestMapping("/jsontest2.action")
@ResponseBody
public Items jsontest2( Items items) {
	return items;
}

二者中content-Type:也是不一样的哦,一定要注意哦



$.ajax({})携带的参数格式:


此处日期格式有问题,会报错:400 (Bad Request)

//@RequestBody:接收json数据并转换成pojo对象
	//@ResponseBody:响应json数据,把java对象转换成json并响应
	@RequestMapping("/jsontest")
	@ResponseBody
	public Items jsontest(@RequestBody Items items) {
		return items;
	}

解决办法:实体类加注解(仅限yyyy-MM-dd HH:mm:ss)

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createtime;

实体类加注解(此种 格式yyyy-MM-dd)

// @DateTimeFormat(pattern="yyyy-MM-dd")
 private Date createtime;







  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值