观看记录
  • 我的观影记录
登录
测试首页原生js封装ajax

原生js封装ajax

      AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于建立快速动态网页的手艺。

     原生js实现ajax功能本家儿要依靠于window.XMLHttpRequest(非IE浏览器利用)和window.ActiveXObject(IE浏览器利用)来标的目的后台发送请求。

工具/原料

  • 电脑
  • myeclipse或者eclipse

第一步调:新加一个javaweb项目

  1. 1

    第一步:利用myeclipse新建javaweb项目。

    打开myeclipse file --》new--》web project 

    具体操作如下图所示:

  2. 2

    第二步:编写servlet。

    package com.test.servlet;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    public class TestServlet extends HttpServlet {

    private static final long serialVersionUID = 5181663133516569754L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    this.doPost(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    }

    }

  3. 3

    第三步:在web中设置装备摆设servlet。

    <!-- 设置装备摆设servlet 起头-->

      <servlet>

      <servlet-name>testServlet</servlet-name>

      <servlet-class>com.test.servlet.TestServlet</servlet-class>

      </servlet>

      <servlet-mapping>

      <servlet-name>testServlet</servlet-name>

      <url-pattern>/testServlet.do</url-pattern>

      </servlet-mapping>

      <!-- 设置装备摆设servlet 竣事-->

第二步调:编写测试功能代码

  1. 1

    第一步:编写servlet营业代码。

    package com.test.servlet;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    public class TestServlet extends HttpServlet {

    private static final long serialVersionUID = 5181663133516569754L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    this.doPost(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    // 避免呈现乱码的问题

    response.setContentType("application/json;charset=utf-8");

    request.setCharacterEncoding("UTF-8");

    String id = request.getParameter("id");

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

    String sex = request.getParameter("sex");

    String json ="{'id':" + id +",'name':'" + name +"','sex':'" + sex

    +"'}";

    response.getWriter().print(json);

    }

    }

  2. 2

    第二步:编写前端ajax代码。

    1、位置:D:\Workspaces\MyEclipse 10\servlet\WebRoot\ajax_js.html

    2、具体内容

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>原生js封装ajax</title>

    </head>

    <body>

    <script>

    /* 封装ajax函数

    * @param {string}opt.type http毗连的体例,包罗POST和GET两种体例

    * @param {string}opt.url 发送请求的url

    * @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的

    * @param {object}opt.data 发送的参数,格局为对象类型

    * @param {function}opt.success ajax发送并接收当作功挪用的回调函数

    */

    function ajax(opt) {

    //第一步解析请求的属性

    opt = opt || {};

    opt.method = opt.method.toUpperCase() || 'POST';

    opt.url = opt.url || '';

    opt.async = opt.async || true;

    opt.data = opt.data || null;

    opt.success = opt.success || function() {

    };

    //第二步解析请求参数

    var params = [];

    for ( var key in opt.data) {

    params.push(key + '=' + opt.data[key]);

    }

    //join方式将数组转为指定符号的自字符串,如斯处将数组["id=2","name=李四"]转为"id=2&name=李四"

    var postData = params.join('&');

    if (opt.url && opt.url.indexOf("?") != -1) {

    postData += opt.url.substr(opt.url.indexOf("?") + 1,

    opt.url.length);

    }

    //第三步获取请求的Http对象

    var xmlHttp = null;

    //若是撑持XMLHttpRequest则利用

    if (XMLHttpRequest) {

    xmlHttp = new XMLHttpRequest();

    } else {

    //若是是IE浏览器则需要利用

    xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');

    }

    //第四步:发送请求

    if (opt.method.toUpperCase() === 'POST') {

    xmlHttp.open(opt.method, opt.url, opt.async);

    xmlHttp.setRequestHeader('Content-Type',

    'application/x-www-form-urlencoded;charset=utf-8');

    xmlHttp.send(postData);

    } else if (opt.method.toUpperCase() === 'GET') {

    xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);

    xmlHttp.send(null);

    }

    //第五步:接管请求并回调函数。

    xmlHttp.onreadystatechange = function() {

    //若是请求竣事,并当作功

    // xmlHttp.readyStat是request 状况     0 还没起头  1 读取中 2 已读取 3 咨询交互中 4 一切完当作

    //xmlHttp.status是http和谈状况  200标识请求当作功

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

    opt.success(xmlHttp.responseText);

    }

    if (xmlHttp.readyState == 4 && xmlHttp.status != 200) {

    opt.error(xmlHttp);

    }

    };

    }

    //挪用请求

    ajax({

    method : 'POST',

    url : '/testServlet.do',

    data : {

    id : '3',

    name : '小丽',

    sex : '女'

    },

    success : function(response) {

    console.log(response);

    },

    error : function(xmlHttp) {

    alert(xmlHttp.status);

    }

    });

    </script>

    </body>

    </html>

  3. 3

    第三步:测试。

    1、启动tomcat测试servlet是否当作功

    http://localhost:8080/servlet/testServlet.do?id=3

    2、请求ajax页面

    http://localhost:8080/servlet/ajax_js.html

    3、若是呈现乱码问题可以参考:

    https://jingyan.baidu.com/article/ed2a5d1fa38b6709f6be17ff.html

注重事项

  • jdk 1.6 myeclipse 2010

“原生js封装ajax”关联的文章

  • 如何关闭皮皮搞笑精彩内容消息通知

    皮皮搞笑是一款手机搞笑社区App,让用户笑到没心没肺,又忍不住感动流泪的温暖家园,那么如何关闭皮皮搞笑精彩内容消息通知以满足不同用户的需求呢?

    1小时前0阅读

    如何关闭皮皮搞笑精彩内容消息通知
  • win7系统找不到宽带连接怎么办

    现如今很多用户都喜欢使用win7系统,而在使用win7系统的过程中做的最多的就是上网了。Win7系统上网离不开宽带连接,如果win7宽带连接找不到了,应该怎么办呢?下面就让小编为大家带来win7系统找不到宽带连接解决方法

    1小时前0阅读

    win7系统找不到宽带连接怎么办
  • 新版QQ音乐怎么关闭底部的直播导航

    新版QQ音乐怎么关闭底部的直播导航?下面请大家随小编一起来看看操作的方法吧。

    1小时前0阅读

    新版QQ音乐怎么关闭底部的直播导航
  • 怎样查询高速实时路况?

    要出行怎么查询高速实时路况?我们用地图就可以了,在地图上就可以看到实际的路况的,下面详细来看下。

    1小时前0阅读

  • 六芒星手势密码教程
  • 教师讲课过程评价标准

    教师是太阳底下最光辉的职业,但是成为教师之路也是要经历重重考验的,下面给大家说说教师讲课过程评价标准

    1小时前0阅读

  • 酚醛铝箔夹芯板

    酚醛铝箔夹芯板是由酚醛泡沫与两层亚光铝箔经过特殊工艺复合而成。外膜材料为经过高温固化的高分子膜,可有效的防止紫外线及气体腐蚀,并与铝箔结合牢固,又能与酚醛泡沫形成聚合物,从而保证象圆酚醛铝箔夹芯板的质量稳定。

    1小时前0阅读

  • Xperia XZ2 Premium配置如何

    Xperia XZ2 Premium是索尼在4月16日悄悄发布的新机,而且没进行预热,下面来简单了解一下配置。

    1小时前0阅读

  • PLSQL破解,无需注册码和破解工具

    PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧。

    1小时前0阅读

  • Win11按capslock切换不了大小写怎么解决

    有朋友不知道在哪里设置,下面小编就给大家分享详细的设置方法,有需要帮助的朋友可以参考下这篇经验,希望能对大家有所帮助。

    2小时前0阅读

    Win11按capslock切换不了大小写怎么解决
切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名