• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >AJAX > Ajax详解及其案例分析

Ajax详解及其案例分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了Ajax详解及其案例分析等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1 获得Ajax对象

1.1 问题

如何获得XmlHttpRequest对象。

1.2 方案

区分浏览器,使用不同的获取方式。

1.3 步骤

步骤一: 新建ajax01.html页面

新建一个Web工程,在WebRoot下新建ajax01.html页面。在<script>标记内编写JavaScript代码实现获取Ajax对象。

<script type="text/javascript">
      /*获取Ajax对象*/
      function getXhr(){
        var xhr = null;
        //确保IE7,IE8,FireFox下可以运行
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          //确保IE6可以运行,无视更古老的IE浏览器
          xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;  
        //更简易的写法
        //xhr = window.XMLHttpRequest?
        //  new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHttp");  
      }  
    </script>
</div>

步骤二: 部署项目访问ajax01.html页面

访问页面如图-2所示。

图 – 2

点击链接:

图 - 3

使用IE测试结果如图-4所示。

图 – 4

注意:本次测试使用的是IE11,但IE的早期5.5,6.0版本创建的都是ActiveXObject类型的。从IE7开始支持创建XMLHttpRequest的方式来获取Ajax对象。

1.4 完整代码

ajax01.html文件代码如下:

<html>
  <head>
    <title>ajax01.html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
      /*获取Ajax对象*/
      function getXhr(){
        var xhr = null;
        //确保IE7,IE8,FireFox下可以运行
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          //确保IE6可以运行,无视更古老的IE浏览器
          xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;  
        //更简易的写法
        //xhr = window.XMLHttpRequest?
        //  new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHttp");  
      }  
    </script>
  </head>
  <body>
    <!-- 获取XMLHttpRequest对象 -->
    <a href="javascript:;" onclick="alert(getXhr());"> 获取Ajax对象 </a>
  </body>
</html>
</div>

2 使用Ajax对象发送GET请求

2.1 问题

使用Ajax对象发送GET类型的请求,从服务器端获取一小段文本。

2.2 方案

遵循创建Ajax对象,创建请求,设置回调函数,发送请求的步骤来完成一次异步请求。

2.3 步骤

步骤一: 新建ajax02.html页面

步骤二: 添加getText()方法,并补充超链接对该方法的调用

<html>
  <head>
    <title>ajax02.html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
    
      function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;    
      }
      
      function getText(){
        //1.获取Ajax对象
        var xhr = getXhr();   
        //2.设置回调函数  
        xhr.onreadystatechange=function(){        
          if(xhr.readyState==4 && xhr.status==200){
            var txt = xhr.responseText;
            alert(txt);
          }
        };
        //3.创建请求
        xhr.open("get","get_text.do",true); 
        //4.发送请求
        xhr.send(null);
      }  
    </script>
  </head>
  <body>
    <!-- 获取服务器端一小段文本 -->
    <a href="javascript:;" onclick="getText()">获取文本</a>
  </body>
</html>
</div>

步骤三: 编写ActionServlet类

package web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ActionServlet extends HttpServlet {

  public void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    //获取请求资源路径
    String uri = request.getRequestURI();
    String path = uri.substring(
        uri.lastIndexOf("/"),
        uri.lastIndexOf("."));
    if(path.equals("/get_text")){//get请求
      out.println("get请求-服务器返回的数据");
    }
    out.close();
  }

}
</div>

步骤四: 部署、运行,查看结果

点击链接:

2.4 完整代码

ajax02.html页面代码:

<html>

 <head>

  <title>ajax02.html</title>  

  <meta http-equiv="Content-Type"

     content="text/html; charset=UTF-8">

  <script type="text/javascript">

    function getXhr(){

      var xhr = null;

      if(window.XMLHttpRequest){

        xhr = new XMLHttpRequest();

      }else{

        xhr = new ActiveXObject("Microsoft.XMLHttp");

      }

      return xhr;    

    }

    function getText(){

      //1.获取Ajax对象

      var xhr = getXhr();  

      //2.设置回调函数  

      xhr.onreadystatechange=function(){        

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

          var txt = xhr.responseText;

          alert(txt);

        }

      };

//3.创建请求

      xhr.open("get","get_text.do",true); 

      //4.发送请求

      xhr.send(null);

    } 

  </script>

 </head>

 <body>

  <!-- 获取服务器端一小段文本 -->

  <a href="javascript:;" onclick="getText()">获取文本</a>

 </body>

</html>
</div>

ActionServlet.java页面代码:

package web;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class ActionServlet extends HttpServlet {

 

  public void service(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

 

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

    PrintWriter out = response.getWriter();

    //获取请求资源路径

    String uri = request.getRequestURI();

    String path = uri.substring(

        uri.lastIndexOf("/"),

        uri.lastIndexOf("."));

    if(path.equals("/get_text")){//get请求

      out.println("来自星星的你");

    }

    out.close();

  }

 

}
</div>

web.xml文件代码:




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11Ajax请求中async:false/true的作用分析
  • 2017-05-11解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题
  • 2017-05-11Ajax提交表单页面刷新很快的解决方法
  • 2017-05-11AJAX和三层架构实现分页功能具体思路及代码
  • 2017-05-11AJAX在Post中文的时候乱码的解决方法
  • 2017-05-11探讨Ajax中有关readyState(状态值)和status(状态码)的问题
  • 2017-05-11添加后台list给前台select标签赋值简单实现
  • 2017-05-11基于iframe实现ajax跨域请求 获取网页中ajax数据
  • 2017-05-11Ajax异步提交数据返回值的换行问题实例分析
  • 2017-05-11JavaScript如何控制Session实现原理及代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • AJAX初级教程之初识AJAX
    • 完成了AJAX树附原理分析
    • 探讨.get .post .ajax ztree 还有后台servlet传递数据的相关知识
    • 一个封装的Ajax类
    • Ajax读取数据之分页显示篇实现代码
    • Ajax使用JSON数据格式案例
    • ajax 操作全局监测,用户session失效的解决方法
    • 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)
    • ajax提交整个from表单示例代码
    • 一个方便AJAX开发的通用类

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有