手写Ajax
来源:互联网 发布:淘货源怎么用传淘宝 编辑:程序博客网 时间:2024/05/03 00:52
//创建xhrfunction createXHR(){ let xhr = null; try{ xhr = new XMLHttpRequest(); }catch(e){ xhr = new ActiveXObject('Microsoft.XMHTTP'); } return xhr;}// 转义字符function params(data){ var arr = []; for(var i in data){ arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i])); } return arr.join("&");}// 封装ajaxfunction ajax(obj){ var xhr = createXHR(); 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); 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); } }}//调用ajax( { "method" : "get", "url" : "1.txt", // "data" : { // "uid" : uid, // "pwd" : pwd // }, "success" : function(data){ alert(data); }, "Error" : function(text){ alert(text); }, "async" : false});
0 0
- 手写ajax
- 手写 ajax
- 手写Ajax
- 手写Ajax
- 手写Ajax核心代码
- ASP.NET手写AJAX
- Ajax手写代码应知应会
- Java手写Ajax
- JS手写AJAX代码
- 手写promise版本ajax
- 手写的ajax分页控件
- asp.net中手写ajax
- 手写实现ajax异步调用
- Ajax手写代码实现-用户验证
- 手写ajax的get与post函数
- 手写Ajax程序实现异步刷新求和
- 手写
- 比你手写代码更快的AJAX开发
- Gym
- bzoj1108[POI2007]天然气管道Gaz
- 2015蓝桥杯——密文搜索
- <纯干货-2>生产对抗网络GAN视频教程-part3
- OpenAirInterface OAI 代码分析
- 手写Ajax
- Hibernate5学习笔记(三)
- NumberRunningTextView(数字会滚动的TextView)
- [LeetCode] First Unique Character in a String 寻找第一个不重复出现的字符
- java取出以数字开头或者以数字结尾的字符串,将字符串转换为大写
- lnk1158 无法运行rc.exe
- c与java
- Github最火开源项目-一分钟实现向左拖拽跳转详情页
- keras安装与入门(Ubuntu)