zoukankan      html  css  js  c++  java
  • 一、JavaScript实现AJAX(只需四步)

    -----------------------------------------------
    一、JavaScript实现AJAX(只需四步)
    -----------------------------------------------
    1、第一步:获取XMLHttpRequest对象
    -----------------------------------------------
    //(1)获取XMLHttpRequest对象
    var xmlHttp = ajaxFunction();
    function ajaxFunction(){
    var xmlHttp;
    try{
    //现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象
    xmlHttp = new XMLHttpRequest();
    }catch(e){
    try{
    //IE6.0
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    try{
    //IE5.0及更早版本
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
    alert("...");
    throw e;
    }
    }
    }
    return xmlHttp;
    }
    -----------------------------------------------
    2、第二步:打开与服务器的连接
    //(2)打开与服务器的连接
    xmlHttp.open(method, url, async);
    参数1:method: 请求方式,可以是GET或POST
    参数2:url: 所要访问的服务器中资源的路径,如: /day08/XxxServlet
    参数3:async: 是否为异步传输,true表示为异步传输,一般都是true。
    -----------------------------------------------
    3、第三步:发送请求
    //(3)通知服务器发送的数据是请求参数
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //(4)发送请求并传递参数给服务器
    xmlHttp.send("xxxx"); //注意,如果不给参数可能会造成部分浏览器无法发送请求
    a)如果是GET请求,可以传一个null,参数可以在第2步中拼接在url后面。例如:
    xmlHttp.send(null);
    b)如果是POST请求,传入的就是请求参数,例如:
    xmlHttp.send("username="+username+"&psw="+psw)
    -----------------------------------------------
    4、第四步,注册监听
    在XMLHttpRequest对象的一个事件上注册监听:
    onreadystatechange
    一共有五个状态:(xmlHttp.readyState)
    0状态: 表示刚创建XMLHttpRequest对象,还未调用open()方法
    1状态: 表示刚调用open()方法,但是还没有调用send()方法发送请求
    2状态: 调用完了send()方法了,请求已经开始
    3状态: 服务器已经开始响应,但是不代表响应结束
    4状态: 服务器响应结束!(通常我们只关心这个状态)
    获取xmlHttp对象的状态:
    var state = xmlHttp.readyState;//可能得到0,1,2,3,4
    获取服务器响应的状态码
    var status = xmlHttp.status;
    获取服务器响应的内容
    var data = xmlHttp.responseText;//得到服务器响应的文本格式的数据

    //(5)注册监听,时刻监听服务器处理请求的状态
    xmlHttp.onreadystatechange = function(){
    if(xmlHttp.readyState == 4){
    //状态为4表示服务器已经处理完成,但是不代表处理成功
    if(xmlHttp.status == 200){//当状态码为200,表示服务器成功的处理了请求
    var result = xmlHttp.responseText;
    //xxx
    }
    }
    }

    -----------------------------------------------
    二、jQuery实现AJAX
    -----------------------------------------------
    1、$.ajax方法
    $.ajax(url, [type], [async], [data], [async], [callback]);
    参数解析:
    url -- 发送请求的URL地址
    type -- 可选,请求方式,默认为"GET"。
    async -- 可选,默认为true,表示异步交互
    data -- 可选,发送至服务器的key/value数据
    dataType -- 可选,服务器响应数据的类型,默认是responseXML或responseText,其中可用的数据类型有:
    json:返回JSON数据。
    xml:返回XML文档,可用JS或jQuery处理。
    text:返回纯文本字符串。
    html:返回纯文本HTML内容,包含的script标签会在插入DOM时执行。
    script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
    success -- 可选,请求成功后执行的函数,函数参数:
    result -- 服务器返回的数据

    代码示例: 校验用户名是否存在
    $.ajax({
    "url" : "<%= request.getContextPath() %>/AjaxCheckUsernameServlet",
    "data" : {"username": username},
    "async" : true,
    "type" : "POST",
    "success" : function(result){
    $("#err-msg").html("<font style='color:red'>"+result+"</font>")
    }
    });
    -----------------------------------------------
    2、$.get方法、$.post方法
    $.get(url, [data], [callback]); -- 请求方式为GET
    $.post(url, [data], [callback]); -- 请求方式为POST
    参数解析:
    url -- 发送请求的URL地址
    data -- 可选,向服务器发送的数据
    callback -- 可选,请求成功后所执行的函数

    代码示例:校验用户名是否存在
    $.get("<%= request.getContextPath() %>/AjaxCheckUsernameServlet", {"username": username}, function(result){
    $("#err-msg").html("<font style='color:red'>"+result+"</font>");
    });
    -----------------------------------------------
    3、load方法
    $(selector).load(url,data,callback);
    参数解析:
    selector -- 选择器,将从服务器获取到的数据加载到指定的元素中
    url -- 发送请求的URL地址
    data -- 可选,向服务器发送的数据 key/value数据 如:{"username" : "张飞", "psw" : "123"}
    callback -- 可选,load方法完成后所执行的函数
    代码示例:
    $("#err-msg").load("<%= request.getContextPath() %>/AjaxCheckUsernameServlet", {"username": username});
    -----------------------------------------------

  • 相关阅读:
    作业3
    学习进度
    作业2
    介绍自己,并介绍github注册过程和初步使用
    mysql显示中文乱码问题解决
    数学能力测试
    C++ Primer总结
    shell脚本
    完全二叉树
    test命令的测试功能
  • 原文地址:https://www.cnblogs.com/jishumonkey/p/12874145.html
Copyright © 2011-2022 走看看