AJAX使用介绍

$(function(){

$("#div1").click(function(){

//创建XMLHttpRequest对象

var xhr = new XMLHttpRequest();

//打开连接

xhr.open("GET","ajax.do?name=张三",true);

//发送请求

xhr.send(null);

//监听状态改变事件

xhr.onreadystatechange = function(){

console.log("状态:"+xhr.readyState);

if(xhr.readyState == 4 && xhr.status == 200){

//更新页面内容

$("#div1").text(xhr.responseText);

}

};

});

});

点击我连接服务器

@WebServlet("/ajax.do")

public class AjaxServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setContentType("text/html;charset=UTF-8");

//处理请求的中文乱码

String name = req.getParameter("name");

name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

//给ajax客户端发送数据

resp.getWriter().println("你好!!"+name+",我是服务器!!");

}

}

JQuery中的Ajax函数:

除了原生的Ajax代码外,JQuery框架也封装了几个ajax函数,让我们能更容易地与服务器交互。

$.ajax

常用参数:

type 请求方法GET、POST

url 服务器地址(必须)

data 请求参数

async 是否异步true,false

success 正常情况调用函数

error 错误情况调用函数

示例:

$.ajax({url:'check.do',data:{tel:‘13001112222’},async:true,

success:function(data){

alert('服务器返回内容'+data);

},

error:function(){

alert('服务器操作出现错误');

}

});

$.post函数

以post方式和服务器交互

$.post("URL地址",{参数名:值},function(data){

回调代码

});

案例:

//使用jquery的post方法

function post(){

$.post("ajax.do",{name:'李四'},function(data){

$("#div1").text(data);

});

}

$.get 函数

以get方式和服务器交互

$.get("URL地址?参数",function(data){

回调代码

});

案例:

//使用jquery的get方法

function get(){

$.get("ajax.do?name=赵六",function(data){

$("#div1").text(data);

});

}

load函数

使用load方法,将ajax加载的内容直接插入到标签中

案例:

$(function(){

$("#div1").click(function(){

//post();

//get();

$("#div1").load("ajax.do?name=马九");

});

});

应用场景:

用户注册时检查用户名是否存在

需求:用户注册时,填写手机号后,当输入框失去焦点时,对手机号进行服务器验证后在手机号输入框后面显示”用户名已存在"或"用户名可以使用";

思路:

1、在input的onblur事件中进行验证

2、通过ajax发送手机号给后台Servlet

3、Servlet对手机号进行数据库查询,返回是否存在的文字给ajax

4、ajax收到返回文字后,显示到标签上

总结:Ajax能够让浏览器和服务器进行交互,并且在不刷新页面的情况下对网页内容进行更新,大大提高了用户体验,通过Ajax技术能够构建交互性极强的Web应用程序。


分享到:


相關文章: