博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用原生js写ajax
阅读量:5952 次
发布时间:2019-06-19

本文共 2090 字,大约阅读时间需要 6 分钟。

// 使用原生js 封装ajax// 兼容xhr对象function createXHR(){  if(typeof XMLHttpRequest != "undefined"){ // 非IE6浏览器    return new XMLHttpRequest();  }else if(typeof ActiveXObject != "undefined"){   // IE6浏览器    var version = [          "MSXML2.XMLHttp.6.0",          "MSXML2.XMLHttp.3.0",          "MSXML2.XMLHttp",    ];    for(var i = 0; i < version.length; i++){      try{        return new ActiveXObject(version[i]);      }catch(e){        //跳过      }    }  }else{    throw new Error("您的系统或浏览器不支持XHR对象!");  }}// 转义字符function params(data){  var arr = [];  for(var i in data){    arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));  }  return arr.join("&");}// 封装ajaxfunction ga_ajax(obj){  var xhr = createXHR();  obj.url = obj.url + "?rand=" + Math.random(); // 清除缓存  obj.data = params(obj.data);      // 转义字符串  if(obj.method === "get"){      // 判断使用的是否是get方式发送    obj.url += obj.url.indexOf("?") == "-1" ? "?" + obj.data : "&" + obj.data;  }  // 异步  if(obj.async === true){    // 异步的时候需要触发onreadystatechange事件    xhr.onreadystatechange = function(){      // 执行完成      if(xhr.readyState == 4){        callBack();      }    }  }  xhr.open(obj.method,obj.url,obj.async);  // false是同步 true是异步 // "demo.php?rand="+Math.random()+"&name=ga&ga",  if(obj.method === "post"){    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    xhr.send(obj.data);  }else{    xhr.send(null);  }  // xhr.abort(); // 取消异步请求  // 同步  if(obj.async === false){    callBack();  }  // 返回数据  function callBack(){    // 判断是否返回正确    if(xhr.status == 200){      obj.success(xhr.responseText);    }else{      obj.Error("获取数据失败,错误代号为:"+xhr.status+"错误信息为:"+xhr.statusText);    }  }}var html = document.getElementsByTagName("html")[0];html.onclick = function(){  ga_ajax({    "method" : "post",    "url" : "dem0o.php",    "data" : {      "name" : "gaga",      "age" : 10000000,      "num" : "12346&598"    },    "success" : function(data){      alert(data);    },    "Error" : function(text){      alert(text);    },    "async" : false  });}

  

 

转载于:https://www.cnblogs.com/ChivanTam/p/5082069.html

你可能感兴趣的文章
3COM SS3 4400系列交换机VLAN功能设置
查看>>
linux安全问答(1)
查看>>
装了flash player却打不开swf ?
查看>>
VS2008中文版MSDN订阅下载问题
查看>>
Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序
查看>>
Android Ap 开发 设计模式第四篇:工厂方法模式
查看>>
Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
查看>>
权威媒体、专家对新书的推荐
查看>>
门槛低的行业看天赋,门槛高的行业看毅力
查看>>
11_HTML5_Local_Storage本地存储
查看>>
UBoot常用命令手册
查看>>
全过程项目结构总结
查看>>
cas单点注销失败Error Sending message to url endpoint
查看>>
使用SerialPort 对象实现串口拨号器通信[下]
查看>>
VC文档与视图结构学习总结
查看>>
Freemarker内置函数使用
查看>>
开启微信公众号之旅
查看>>
jstl数字转日期
查看>>
Windows下Hadoop eclipse开发平台搭建
查看>>
Http Live Streaming 实现iphone在线播放视频[转]
查看>>