纯js封装的ajax功能函数与用法示例


Posted in Javascript onMay 14, 2018

本文实例讲述了纯js封装的ajax功能函数与用法。分享给大家供大家参考,具体如下:

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 不是新的编程语言,而是一种使用现有标准的新方法。是7种技术的综合,它包含了七个技术(javascript xml xstl xhtml dom xmlhttprequest , css),  ajax  是一个粘合剂。

直接上程序:

js调用部分:

<script src="ds.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
<span style="white-space:pre;"> </span>window.onload=function(){
    var oDs=document.getElementById('ds');
    var oText=document.getElementById('text');
    oDs.onclick=function(){
      //第一个参数:数据传输方式 get post
      //第二个参数:调用文件的路径
      //第三个参数:data
      //第四个参数:回调函数
      ajax('GET','aa.txt','',function(str){
        //此处是调用名字为aa的txt文件里所有的内容(str),所以data直接为''
        //如果需要插入特定参数,则data值为 data='&name='+oText.value;
        console.log(str);//名字为aa的txt文件里所有的内容
      });
    }
  }
</script>

html部分:

<input type="button" name="ds" id="ds" value="弹出" />
<input type="text" value="" id="text"/>

ajax封装部分:

function ajax(method, url, data, fnsuccess) {
  var xhr;
  //1.创建对象,兼容问题
  if(window.XMLHttpRequest) {
    //在高版本的浏览器 IE7+
    xhr = new XMLHttpRequest();
    //XMLHttpRequest用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
  } else {
    //IE5 IE6
    xhr = new ActiveXObject();
  }
  //2.发送请求
  //第一个参数:数据传输方式 get post
  //第二个参数:处理文件 xx.php xx.txt ,要数据:直接写路径就好;提交数据:在地址那里写数据(get方式)
  //第三个参数:同步或者异步方式,默认是异步true
  //open
  //get模式路径上同时加入需要传输的内容
  if(method == 'GET' && data) {
    url = url + '?' + data;
  }
  xhr.open(method, url, true);
  //send
  //send()如果是get方式,写null或者为空;
  //如果是post,参数那就直接写要传输的内容
  if(method == 'GET') {
    xhr.send(null);
  } else {
    //创建头文件信息
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send(data);
  }
  //4.接受php传过来的数据,解析 dom操作
  xhr.onreadystatechange = function() {
    if(xhr.readyState == 4) {//响应过程状态信息,4代表发送完成,顺利返回信息
      if(xhr.status == 200) {//status:状态码,如果返回的信息是200
        fnsuccess && fnsuccess(xhr.responseText);
      } else {
        alert(xhr.status);//发生错误时,返回该状态码
      }
    }
  }
}

表单验证,用户名验证:

<form action="checkName.php" method="post">
  <!--span标签是用于提示,用户名重复,以及可以注册-->
  用户名:<input type="text" id="username" /><span id="inf"></span><br />
   密码:<input type="password" /><br />
  <input type="button" id="submit" value="提交" />
</form>

js调用部分:

<script src="ds.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
  window.onload = function() {
    var oUsername = document.getElementById('username');
    var oInf = document.getElementById('inf');
    oUsername.onkeyup = function() {
      var data='&name=' + oUsername.value;
      //路径连接的是php文件
      ajax('GET','/0322/test/checkName.php',data,function(str){
        oInf.innerHTML=str;
      });
    }
  }
</script>

php部分:

<?php
// echo 输出
// echo 'qwerrtty';
//3.获取ajax传来的信息,做处理,在返回给ajax:后台做或者后台协作。
//这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式
  header("Content-Type: text/xml;charset=utf-8");
  //告诉浏览器不要缓存数据
  header("Cache-Control: no-cache");
//返回xml txt json html
  $userName=$_GET['name'];
  if($userName=='admin'){//把内容拿到,进行判断
    echo '<result><mes>该用户名重复了</mes></result>';
  }else{
    echo '<result><mes>该用户名可以注册</mes></result>';
  }
?>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 解析后的xml对象的读取方法细解
Jul 25 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 Javascript
js实现年月日表单三级联动
Apr 17 Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 #Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 #Javascript
jQuery中元素选择器(element)简单用法示例
May 14 #jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 #jQuery
vue引入js数字小键盘的实现代码
May 14 #Javascript
vue移动端路由切换实例分析
May 14 #Javascript
对node.js中render和send的用法详解
May 14 #Javascript
You might like
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python中from module import * 的一个坑
2014/07/20 Python
详解Python当中的字符串和编码
2015/04/25 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
python生成lmdb格式的文件实例
2018/11/08 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Django工程的分层结构详解
2019/07/18 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
学术会议主持词
2014/03/17 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android