前言:如果springMVC框架中controller想直接接受参数的话,则需要在浏览器中发送ajax请求,并指定contentType的值为"application/json;charset=utf-8"。(如果浏览器不是ajax请求,是普通的参数请求,则需要在参数值封装pojo)
在学习中遇到了三个坑,特此说明:
第一
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"></script>
上面的代码目的是引入jquery-3.3.1.js文件,如何写成下面的形式,则无法发送ajax请求。
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.js"/>
第二
由于使用的是springMVC框架,所以webapp下的与WEB-INF同级的js目录下的文件不能直接访问到,需要在spring-mvc文件中加入下面的代码
<mvc:resources mapping="/js/**" location="/js/"/>
第三
在使用JQuery发送ajax请求的时候由于必须要指定contentType的值为"application/json;charset=utf-8",所以不能使用下面的化简请求方式
$.post("/travel/user/quick9",JSON.stringify(userList),function () {
});
应改为原始方式,且必须使用POST请求方式,因为Controller里面的参数前面有@RequestBody注解,也就以为着springMVC会从请求体中查找封装数据
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/user/quick13",
data:JSON.stringify(userList),
contentType:"application/json;charset=utf-8"
});