页面中ajax发起请求,controller接收数据并处理
这次ajax的测试以访问html的方式配置
配置yml文件:
然后在 src/main/webapp下创建一个html页面
创建controller:
运行项目就可以访问到index.html:
引入jquery:
修改index.html页面:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title
here</title> <script src="js/jquery-1.8.3.js"></script> <script> $(function(){
$("#s").click(function(){ var ins=$("#ins").val(); $.ajax({
url:"/r",//要请求的服务器url
data:{ins:ins},//第一个name对应的是后端request.getParameter("name")的name、第二个name对应的是此js中的var
name = $("#name").val();的name async:true,//是否是异步请求 cache:false,//是否缓存结果
type:"POST",//请求方式 dataType:"text",//服务器返回什么类型数据 text xml javascript
json(javascript对象) success:function(result){//函数会在服务器执行成功后执行,result就是服务器返回结果
console.log(result); $("#re").html(result); }, error:function(jqXHR,
textStatus, errorThrown) { } }); }); }); </script> </head> <body>
<h1>我是html页面</h1> <input type="text" id="ins" /> <button id="s">发起ajax</button>
<span id="re"></span> </body> </html>
然后再写一个controller来接收:
//因为页面的实现是想点击按钮后就发起ajax请求传入input输入的内容,所以这里的方法有个String类型的ins参数,
//要和发起ajax方法里的data的:前的名字一样 //而@ResponseBody是表示这个方法是返回的参数类型是json格式
@RequestMapping("/r") @ResponseBody public String r(String ins) { String s="";
if(ins.equals("")) { s="输入不能为空"; }else { s=ins; } return s; }
运行测试: