zoukankan      html  css  js  c++  java
  • 封装JavaScript的AJAX

     1 // 创建request对象
     2 function createXMLHttpRequest() {
     3     try {
     4         return new XMLHttpRequest();//大多数浏览器
     5     } catch (e) {
     6         try {
     7             return ActvieXObject("Msxml2.XMLHTTP");//IE6.0
     8         } catch (e) {
     9             try {
    10                 return ActvieXObject("Microsoft.XMLHTTP");//IE5.5及更早版本    
    11             } catch (e) {
    12                 alert("用的是什么浏览器啊?");
    13                 throw e;
    14             }
    15         }
    16     }
    17 }
    18 //option对象有如下属性
    19          /*请求方式*/method, 
    20         /*请求的url*/ url, 
    21         /*是否异步*/asyn, 
    22         /*请求体*/params, 
    23         /*回调方法*/callback,
    24         /*服务器响应数据转换成什么类型*/type
    25 
    26 function ajax(option) {
    27     //1. 得到xmlHttp
    28     var xmlHttp = createXMLHttpRequest();
    29     //2. 打开连接
    30     if(!option.method) {//默认为GET请求
    31         option.method = "GET";
    32     }
    33     if(option.asyn == undefined) {//默认为异步处理
    34         option.asyn = true;
    35     }
    36     xmlHttp.open(option.method, option.url, option.asyn);
    37     //3. 判断是否为POST
    38     if("POST" == option.method) {
    39         xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    40     }
    41     //4. 发送请求
    42     xmlHttp.send(option.params);
    43     //5. 注册监听
    44     xmlHttp.onreadystatechange = function() {
    45         if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {//双重判断
    46             var data;
    47             // 获取服务器的响应数据,进行转换!
    48             if(!option.type) {//如果type没有赋值,那么默认为文本
    49                 data = xmlHttp.responseText;
    50             } else if(option.type == "xml") {
    51                 data = xmlHttp.responseXML;
    52             } else if(option.type == "text") {
    53                 data = xmlHttp.responseText;
    54             } else if(option.type == "json") {
    55                 var text = xmlHttp.responseText;
    56                 data = eval("(" + text + ")");
    57             }
    58             // 调用回调方法
    59             option.callback(data);
    60         }
    61     };
    62 };
     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>My JSP 'json3.jsp' starting page</title>
     7     <meta http-equiv="pragma" content="no-cache">
     8     <meta http-equiv="cache-control" content="no-cache">
     9     <meta http-equiv="expires" content="0">    
    10     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    11     <meta http-equiv="description" content="This is my page">
    12 <script type="text/javascript" src="<c:url value='/ajax-lib/ajaxutils.js'/>"></script>
    13 <script type="text/javascript">
    14 window.onload = function() {
    15     var btn = document.getElementById("btn");
    16     btn.onclick = function() {
    17         ajax(
    18             {
    19                 url:"<c:url value='/AServlet'/>",
    20                 type:"json",
    21                 callback:function(data) {
    22                     document.getElementById("h3").innerHTML = data.name + ", " + data.age + ", " + data.sex;
    23                 }
    24             }
    25         );
    26     };
    27 };
    28 </script>
    29   </head>
    30   <body>
    31 <%-- 点击按钮后,把服务器响应的数据显示到h3元素中 --%>
    32 <button id="btn">点击这里</button>
    33 <h1>显示自己封装的ajax小工具</h1>
    34 <h3 id="h3"></h3>
    35   </body>
    36 </html>
    index.jsp
     1 import java.io.IOException;
     2 
     3 import javax.servlet.ServletException;
     4 import javax.servlet.http.HttpServlet;
     5 import javax.servlet.http.HttpServletRequest;
     6 import javax.servlet.http.HttpServletResponse;
     7 public class AServlet extends HttpServlet {
     8     public void doGet(HttpServletRequest request, HttpServletResponse response)
     9             throws ServletException, IOException {
    10         /*
    11          * 向客户端发送json串
    12          */
    13         String str = "{"name":"zhangSan", "age":18, "sex":"male"}";
    14         response.getWriter().print(str);
    15         System.out.println(str);
    16     }
    17 }
    AServlet
  • 相关阅读:
    哥们儿太猛了
    word文档中出现一串乱码数字
    outlook添加附件时报错--“附件大小超过了允许的范围”
    windows常用脚本备忘
    vim常用命令
    win10中使用scp命令传输文件
    win10安装域控管理工具组件
    edge浏览器离线下载
    SQL_从星期一到星期六自动打卡SQL代码
    用友U8按BOM计算销售订单物料需求SQL代码 第一稿
  • 原文地址:https://www.cnblogs.com/fengmingyue/p/6085206.html
Copyright © 2011-2022 走看看