HTML实现HTTP-POST请求访问SpringMVC

首先: springMVC对于命名不规范的参数是有容忍度的。

建议参数名严格按照规范编写-同时注意getter,setter方法(这里面的坑很深,感兴趣的可以进去走走)

这里示例后端需要接收的参数名为  'ID' , 'Type' ;

若是get请求,则直接封装为 " url?ID=123&Type=ACCEPT"

但是这里需要使用POST请求, 尝试直接使用 <form action="url" method="POST"> 再通过submit方法进行访问,

结果type接收不到,尝试了@JsonProperty这个注解,但是ID接收不到了。很奇怪。更奇怪的是我使用postman来测试却OK。

这就让我十分不解,怀疑是因为form表单提交时数据格式发生了变化,于是继续找资料.

方案一:  用JavaScript的方式让form表单的数据以Json格式提交数据,代码如下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="Access-Control-Allow-Origin" content="*" />
	<title>自动化接口测试/POST请求</title>
	<script type="text/javascript" src="./jquery-3.3.1.min.js"></script>
</head>
<body>
	<button οnclick="doPost()">POST请求</button>

	<form>
		
		<input type="text" name="ID">
		<input type="text" name="Type">
  		<input type="submit" value="登录"  />

	</form>



</body>
<script type="text/javascript">
	


 $(':submit').on('click',function(){
        $.ajax({
            url:"url", //TODO:修改这个url
            async : true,
            type:"POST",
            data:$('form').serializeArray(),
            contentType:"application/x-www-form-urlencoded",
            success:function(){
                console.log("成功");
            }
        });
   });


	function doPost(){



		$.ajax({

			url :  "url", //TODO:修改这个url
			async : true,
			type : "POST",
			data : $('form').serializeArray(),
			contentType:"application/x-www-form-urlencoded",
			success: function ( data ) {
				 alert("1111");
				 alert(data);
			        console.log(data);
					},
			error: function (data) {
					 alert("2222");
					  alert(data);
				 console.log(data);
			}
		});




	}



</script>
</html>

测试结果OK; 后端SpringMVC 控制层(controller)成功接收到数据

发布了22 篇原创文章 · 获赞 3 · 访问量 3442

猜你喜欢

转载自blog.csdn.net/ChyoD1811/article/details/102563246