前言:
实际项目开发中,ajax使用很频繁,主要做一些数据验证,数据获取等需求。
1.springmvc+ajax交互方式:
1.1.text类型数据
前端:
$.ajax({ url:'${pageContext.request.contextPath}/zy/user/existLoginName',//请求地址 type:'post',//请求类型 data:{loginName:$("#loginName").val()},//传入后台数据 dataType:'text',//后台返回数据类型 success : function(data) { alert("成功!"); }, error:function(data){ alert("服务器异常!"); } })
后台:
@RequestMapping("/existLoginName") public void existLoginName(HttpServletRequest request,HttpServletResponse response){ String zh = request.getParameter("loginName"); User u = userService.selectUserByLoginName(zh); try { if(u!=null){ response.getWriter().write("exist"); }else{ response.getWriter().write("ok"); } } catch (IOException e) { e.printStackTrace(); } }
1.2.json类型数据
1.2.1.后台@ResponseBody传数据到前台
前端:
$.ajax({ url:'${pageContext.request.contextPath}/user/existLname', type:'post', dataType:'json', data:{loginName:$("#loginName").val()}, success:function(data){ alert(data.msg); } //注意:这里不能加下面这行,否则数据会传不到后台 //contentType:'application/json;charset=UTF-8', })
后台:
@RequestMapping("/existLname") @ResponseBody public MapsearchUser(String loginName){ User u= userService.selectUserByLoginName(loginName); Map map = new HashMap (); if(u!=null){ map.put("msg", "no"); }else{ map.put("msg", "ok"); } return map; }
1.2.2.后台@RequestBody接收数据
前端:
$.ajax({ url:'${pageContext.request.contextPath}/user/existLname', type:'post', contentType:'application/json;charset=UTF-8',//必须有 dataType:'json', data:{loginName:$("#loginName").val()}, success:function(data){ alert(data.msg); } })
后台:
@RequestMapping("/existLname") @ResponseBody public String searchUser(@RequestBody String loginName){ User u= userService.selectUserByLoginName(loginName); JSONObject jo = new JSONObject(); if(u!=null){ jo.put("msg", "no"); }else{ jo.put("msg", "ok"); } return jo.toString(); }