spring mvc ajax form提交报请求因 HTTP 状态 415 失败: Unsu...

本文探讨了使用Ajax GET方式与jQuery Form提交数据时遇到415错误的问题,并给出了具体的解决方案,包括调整Controller处理方法及参数接收方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   之前用ajax异步GET方式提交数据

$.ajax({
      type: "GET",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      url: "<%=request.getContextPath()%>/test.html",
      data:{username:"zsd"},
      success: function(text){
       alert(text.username)
      },
      error: function(err) {
                           alert("err");
                       }
     });

Controller 中-------------------

@RequestMapping(value = "/test.html", method = RequestMethod.GET)
 @ResponseBody
 public  User getShopInJSON(User   user ) {

  System.out.println("--------------:"+user.getUsername());
  User shop = new User();
  shop.setId(2);
  shop.setUsername("haha");
  shop.setPassword("zhoushunde");
  shop.setNickname("zxx");
  return shop;

 }
以上以通过;但当用jquery form 提交时就报415错了,

最后换成

public  User add(HttpServletRequest request,
	        HttpServletResponse response ) {
		
		System.out.println("--------------:"+request.getParameter("username"));
		User shop = new User();
		shop.setId(2);
		shop.setUsername("haha");
		shop.setPassword("zhoushunde");
		shop.setNickname("zxx");
		return shop;
}
或者是public  User add(@RequestParam(value = "username", required = true)String  username) {这种也可以通过 public  User add(@RequestParam String  username) {}

 form是使用的是post的方式提交 ,以下对于post方式的处理

var obj={};
		obj.username="zsd";
		var param = JSON.stringify(obj);
		alert(param);
                $.ajax({
		type: "POST",
		contentType: "application/json; charset=utf-8",
		url: "<%=request.getContextPath()%>/test.html",
		data:param,//若这里改成data:{"username":"zsd"}请求会报400 dataType: "json",
		 success: function(text){
		 alert(text.username)
		 },
		 error: function(err) {
			alert("err"); } 
					});

 Controller中----------

 

@RequestMapping(value = "/test.html", method = RequestMethod.POST)
	@ResponseBody
	public  User getShopInJSON(@RequestBody User user) {

		System.out.println("--------------:"+user.getUsername());
		User shop = new User();
		shop.setId(2);
		shop.setUsername("haha");
		shop.setPassword("zhoushunde");
		shop.setNickname("zxx");
		return shop;

	}


转载于:https://my.oschina.net/stonezing/blog/122265

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值