通过jQuery实现AJAX

通过jQuery实现AJAX

    > 使用get和getJSON都会有缓存问题,并且使用get方法不能传送较多的数据。

 问题:

    在IE浏览器中,get请求使用ajax存在缓存问题,会使用上一次请求的结果处理请求,而不向服务器发送请求

  解决办法:

    在请求尾部带一个随机参数,如:var url="/MyProject/user?t="+Math.random();

    post请求:通过send()方法传递参数,需要设置请求头,没有浏览器缓存问题

    > post方法不会有缓存的问题,所以我们开发时使用post方法较多。

1、 post()方法

      $.post(url, [data], [callback], [type])

    参数:

      url:发送AJAX的请求地址,字符串

      data:发送给服务器的请求参数,JSON格式。

      callback:当前需要获取服务器发送的响应时,我们可以通过该回调函数

      jQuery会将响应信息以回调函数的参数的形式返回

      type:响应信息的类型,字符串。一般两个常用值text、json

2、 get()方法

    - get方法和post方法使用方式基本一致。

3、 getJSON()方法

    getJSON(url, [data], [callback])

    getJSON方法和get方法类似,只不过该方法默认的响应类型为JSON,不需要再手动指定。

  代码演示:

 1     $("input[name=username]").blur(function(){
 2             var url="${pageContext.request.contextPath}/user?method=isExists";
 3             var username=$("input[name=username]").val();
 4             var param={"username":username};
 5             function callback(data){
 6                 if(data==1){
 7                     $(".errorMsg").text("用户名已存在");
 8                     $("#sub_btn").attr("disabled",true);
 9                 }else{
10                     $(".errorMsg").text("用户名可以使用");
11                     $("#sub_btn").attr("disabled",false);
12                 }
13             }
14             $.post(url,param,callback,"text");
15         });

  Servlet中的验证方法:

1   public void isExists(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
2         String username=request.getParameter("username");
3         boolean isExists=userService.isExists(username);
4         if(isExists){   //用户已存在
5             response.getWriter().println("1");
6         }else {
7             response.getWriter().println("0");
8         }
9     }



原文地址:https://www.cnblogs.com/java-zmj/p/7943891.html