使用JavaScript和jQuery简单实现Ajax技术

Ajax的定义

Ajax被认为是(Asynchronous JavaScript and XML的缩写)。 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax。

Ajax的工作原理

Ajax的核心是JavaScript对象XmlHttpRequest。XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

一、使用JavaScript实现Ajax技术

1.首先建立一个jsp页面,导入js页面并且新建一个测试按钮。

<script type="text/javascript" src="ajaxGet.js"></script> <!-- src导入相应的JavaScript实现Ajax代码 -->
</head>
<body>
    <input type="button" id="btn" value="ajax"/> <!-- 测试按钮 -->
</body>

2.其中我们在js页面先需要获取XmlHttpRequest对象,并且需要处理兼容问题

获取XmlHttpRequest对象
function getXMLHttpRequest() {
    var xmlHttpReq=null;
    if (window.XMLHttpRequest) {//Mozilla 浏览器
        xmlHttpReq = new XMLHttpRequest();
    }else {
        if (window.ActiveXObject) {//IE 浏览器
            try {
                xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                try {//IE 浏览器
                    xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                }
            }
        }
    }
    return xmlHttpReq;

3.接着在相同页面下开始写onload事件(get方法发送数据)

window.onload = function(){
      var  btnDom=document.getElementById("btn");
    btnDom.onclick = function(){
        //ajax步骤
        //1
        var xhr = getXMLHttpRequest();

        //2.监听响应  如何判断能够正确请求和响应
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){  //响应结束
                if(xhr.status == 200){ //正确响应
                    //接收响应数据
                    var data = xhr.responseText;
                    alert(data);
                }
            }
        };
        //3.打开连接
        /*
         * method:  get 或 post
         * url:  请求路径
         * async: true(表示异步,默认) false
        */
        xhr.open("get","../ajaxGetServlet?age=18&userName=jack",true);
        //4.发送数据
        xhr.send(null); //使用get请求send发送的数据都为null,且不能省略这一步
    };
  };

或者使用(post请求//第3第4步骤有区别)

 window.onload = function(){
      var  btnDom=document.getElementById("btn");
    btnDom.onclick = function(){
        //1
        var xhr = getXMLHttpRequest();
        //2.
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if(xhr.status == 200){
                    var data = xhr.responseText;
                    alert(data);
                }
            }
        };
        //3.
        xhr.open("post","../ajaxPostServlet",true);
        /*
         * 4.发送数据
         * send()  string或null
         *             String类型一般为键值对  "username=zhangsan"
         * get请求 都是send(null)
         * post请求要send数据需要设置请求头
         */
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xhr.send("user=admin&age=12");
    };
  };

其中步骤3的url需要我们创建一个servlet

public class AjaxGetServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String age = request.getParameter("age");
        String userName = request.getParameter("userName");
        System.out.println(age+"------"+userName);
        //响应数据
        response.getWriter().print("hello"); //js中步骤2监听响应

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}

代码写完以后,我们只需要按一下(value="ajax")测试按钮就可以使用ajax技术实现异步请求与响应。

二、使用jQuery实现Ajax技术

案例:如何使用ajax技术实现用户注册时用户名是否被占用?

1.jsp注册页面

<script type="text/javascript" src="../js/jquery-1.8.3.js"></script><!-- 导入jQuery包 -->
<body>
    <h3>jquery 实现 ajax</h3>
    <p>用户名:<input id="userName" name="userName"/><span id="msg"></span></p>
    <script type="text/javascript" src="jqdemo.js"></script><!-- jqdemo.js使用jquery实现ajax -->
</body>

2.js页面(无需手动获取XmlHttpRequest对象)

$(function(){
    $("#userName").blur(function(){
        var name = $(this).val();
        if(name.trim() == ""){
            return;
        }
        //jquery 实现 ajax
        $.ajax({
            url:"../jqueryUserName",   //请求的路径
            type:"post", // 请求方式 默认是get
            data: {     //要发送的数据
                "name":name
            },
            dataType:"text",  //响应数据的类型
            success:function(result){ // 正确响应
                if(result == "yes"){
                    $("#msg").html("用户名可以使用");
                }else{
                    $("#msg").html("用户名被占用");
                }
            },
            error:function(){
                alert("请求失败!");
            }
        });
    });
});

3.servlet页面(获取用户名比较是否被占用)

public class JqueryUserName extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("jquery ajax 验证用户名!");
        PrintWriter out = response.getWriter();
        String name = request.getParameter("name");
        if("ajax".equals(name) || "admin".equals(name) || "jack".equals(name)){
            //用户名已被使用
            out.print("no");
        }else{
            out.print("yes");
        }
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}
时间: 2024-08-24 16:28:28

使用JavaScript和jQuery简单实现Ajax技术的相关文章

jQuery简单的Ajax调用示例

jQuery简单的Ajax调用示例 jQuery确实方便,下面做个简单的Ajax调用: 建立一个简单的html文件: <!DOCTYPE HTML> <html> <head> <script type="text/javascript" src="Public/js/jquery-easyui-1.3.1/jquery-1.8.2.min.js"></script> <script type=&qu

jQuery简单的Ajax调用

index.php 的代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <!--引入jQuery文件--> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript&

模拟jQuery简单封装ajax

1 /*模拟jQuery的写法 (简单写法)*/ 2 var $={}; 3 /*ajax*/ 4 $.ajax = function (options) { 5 /* 6 * 请求 7 * 1.请求接口 type get post 默认的是get 决定是否设置请求头 8 * 2.接口地址 url 不确定 字符串 如果用户没有传 默认的接口地址为当前路径 9 * 3.是否是异步 async 默认的就是异步 true;false 是同步请求 10 * 4.提交数据 data 默认的是对象 {nam

异步处理XML异步数据——以原生的JavaScript与jQuery中的$.ajax()为例

此文档解决以下问题: 一.原生的JavaScript从服务器端输出XML格式数据 1.XMLHttpRequest对象的运用 XMLHttpRequest对象的open()方法 XMLHttpRequest对象的send()方法 XMLHttpRequest对象的onreadystatechange事件运用 XMLHttpRequest对象的readyState属性 XMLHttpRequest对象的status属性 XMLHttpRequest对象的responseXML属性 2.docume

jQuery简单封装ajax,带logintoken

const URL = 'http://192.168.1.28:8081'; function ajax(params,success){ let token = sessionStorage.getItem('loginToken'); params._params.loginToken = token; $.ajax({ type:"post", url:URL+'/common/service.execute.json', headers:{"Content-Type

用JQuery实现ajax技术的常用方法

在我的前一篇用js实现ajax的三种技术中,我提到了怎么用原生的js代码去实现ajax技术,但是 可以看到,代码相对于来说还是比较多,在我们实际的开发中,我们用到的比较多的技术是用jquery来实现,因为相对于js来说, 用jquery来实现ajax技术会简单很多,因为它将一些通用的代码都封装在一些方法里面,我们可以直接调用方法即可使用, 非常方便,所有下面我就总结了关于jquery实现ajax的一些常用方法. 一.load(url, args) 概述:load()方法是最为简单和常用的方法,它

Ajax技术及 XMLHttpRequest 对象

这一节,主要内容是简单介绍Ajax技术,并了解其核心技术: XMLHttpRequest 对象. 1.首先,要了解什么是 Ajax : Ajax是asynchronous javascript and xml 缩写,意思是异步的JavaScript 与 XML.这是一种使用客户端脚本与web服务器交换数据的web应用开发方法,可以与JSP.ASP.PHP.Python和CGI脚本交互,不用关心服务器是什么. 对于 web 开发人员来说,发送异步请求是一个巨大的进步.很多在服务器执行的任务都相当费

Ajax 技术学习

一.Ajax 基础 1.1 什么是 Ajax? 1.2 在哪里我们会用到 ajax 1.3 ajax 的工作原理 1.4 XMLHttpRequest 对象 1.4.1 XMLHttpRequest 常用方法 1.4.2 XMLHttpRequest 常用属性 二.让我们来试一试吧 2.1 简单的使用 ajax ,验证用户名是否合法 2.1.1 前端 demo (index.jsp) 2.1.2 JavaScript demo 2.1.3 2.1.4 后端 servlet 代码 2.2 运行截图

【JavaScript】jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :