Spring MVC无法获取ajax POST的参数和值

 jsp代码如下:

function toLogin() {
		var uname = $('#uname').val().trim();
		var upwd = $('#upwd').val().trim();
		
		$.ajax({
			type : 'POST',
			url : '${pageContext.request.contextPath}/page/login.do',
			contentType : "application/json",
			data : {
				name : uname,
				pwd :upwd
			},
			success : function(data) {
				alert(data);
				console.log(data)
			},
			 error:function(){  
                 alert("发生异常,请重试!");  
               }  
		});
	}

控制层:

	@ResponseBody
	@RequestMapping(value = "/login.do", method = RequestMethod.POST)
	public String start( User usrs) {

		System.out.println("userName is:" + usrs.getName() + "密码是" + usrs.getPwd());

		int userInt = this.userService.findByName(usrs.getName());
		if (userInt > 0) {
			return "登录成功";
		} else {
			return "登录失败";
		}

	}

1、发送请求后,发现如果把post改成get,后台的参数是有值的,如果是post方式发送就没有值(为空)。也可以用提交的方式来提交表单,不过没有用到ajax,虽然也是可以用。那么是什么问题导致post方式不能把表单的数据提交到后台的原因是什么呢?

经过调试发现,页面可以获取到用户输入的值,提交到后台就为空,也就是在交互的时候出现了问题。

表单提交数据的格式像地址栏的拼接字符一样连在一起,而spring 要求的是json,也就是键值对的形式。也就是格式不对。

所以修改编码格式就好,改为:

contentType : "application/x-www-form-urlencoded",

你可能感兴趣的:(java)