使用原生js写ajax

// 使用原生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("&");
}
// 封装ajax
function 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 处理过慢,原来是一个 SQL 缓存框架导致的 GC 频繁触发

一&#xff1a;背景 1. 讲故事上个月底&#xff0c;有位朋友微信找到我&#xff0c;说他的程序 多线程处理 RabbitMQ 时过慢&#xff0c;帮忙分析下什么原因&#xff0c;截图如下&#xff1a;这问题抛出来&#xff0c;有点懵逼&#xff0c;没说CPU爆高&#xff0c;也没说内存泄…

3部世界顶级宇宙纪录片,献给对宇宙万物充满好奇的你~

全世界只有3.14 % 的人关注了爆炸吧知识宇宙深邃美丽&#xff0c;是黑夜的荧光&#xff0c;是夏天里冒着凉气的西瓜&#xff0c;总是诱人地勾起一代又一代人探索的欲望。对于宇宙思索与探索&#xff0c;人类的脚步从未停止。正是人类对宇宙的好奇&#xff0c;撑起了人类发展的大…

二元函数偏导数公式_偏导数计算公式大全

如果函数f(x)在(a,b)中每一点处都可导,则称f(x)在(a,b)上可导,则可建立f(x)的导函数,简称导数。以下是小学生作文网小编给大家提供的导数公式大全,快来看看吧!导数的定义:当自变量的增量... 2018-12-29 阅读全文 >> 导数公式大全-偏导数基本公式大全_营销/活动策划_计…

在.net 4.0程序中使用TPL Dataflow

今天写了一个小程序&#xff0c;用到了TPL Dataflow&#xff0c;结果在部署的时候发现了一个问题&#xff1a;客户的服务器中有win2003的机器&#xff0c;2003是不支持.net 4.5的&#xff0c;但TPL Dataflow却只能在.net 4.5的程序上使用。 在网上搜了一下&#xff0c;MSDN论坛…

Android之平时遇见的异常和错误总结(不断更新)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程 安卓错误经验累积 1、当出现下面错误时候 08-21 03:43:16.679: E/AndroidRuntime(1087): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.…

【20120517】【早晨】

今天早上没去GIS程序设计的实验&#xff0c;窝在寝室准备看图论和汇编。。。不多说了&#xff0c;现在开始~~

OC类

2019独角兽企业重金招聘Python工程师标准>>> OC语言的一个类分为两个文件一个.h&#xff0c;一个.m&#xff0c;.h为头文件用来添加实例变量和方法声明。.m文件里面写入方法的实现 .h一般如下 interface 类名:父类 属性声明 方法声明 end .m一般如下 implementation…

06Prism WPF 入门实战 - Log控件库

1.概要源码及PPT地址&#xff1a;https://github.com/JusterZhu/wemail视频地址&#xff1a;https://www.bilibili.com/video/BV1KQ4y1C7tg?share\sourcecopy\web本章分为以下几个部分来了解&#xff1a;Part1 日志Part1.1 全局异常捕捉Part1.2 DumpPart2 引入控件库2.详细内容…

天冷打字全靠抖?!桌面暖手宝,体验10s速热,温暖升级,冬天有TA就够了

▲点击查看没有一丝丝防备&#xff0c;冷空气说来就来了~无论是寒风猛烈的北方&#xff0c;还是湿冷又没有暖气的南方&#xff0c;对于上班族来说&#xff0c;冬天最痛苦的事情莫过于哆哆嗦嗦在工位码字了&#xff01;冷风侵袭无处不在&#xff0c;备上个暖手袋&#xff0c;根本…

试题导入mysql乱码_解决Mysql导入乱码问题

解决Mysql导入乱码问题方法一: 通过增加参数 –default-character-set utf8 解决乱码问题C:\Users\Administrator>mysql -uroot -p yktgl < F:\YIKATONG\application\gl.sql --default-character-setutf8方法二: 在命令行导入乱码解决1.mysql>use gl;2.mysql> set…

心的影子

我相信命理&#xff0c;但我不相信在床脚钉四个铜钱就可以保证婚姻幸福、白首偕老。 我相信风水&#xff0c;但我不相信挂一个风铃、摆一个鱼缸就可以使人财运亨通、官禄无碍。 我相信人与环境中有一些神秘的对应关系&#xff0c;但我不相信一个人走路时先跨走左脚或右脚就可以…

设计模式-Factory Method Pattern

为什么80%的码农都做不了架构师&#xff1f;>>> 一、 工厂方法&#xff08;Factory Method&#xff09;模式 工厂方法&#xff08;FactoryMethod&#xff09;模式是类的创建模式&#xff0c;其用意是定义一个创建产品对象的工厂接口&#xff0c;将实际创建工作推迟…

IoTSharp 2.0 发布

你站在桥上看风景&#xff0c;看风景人在楼上看你。明月装饰了你的窗子&#xff0c;你装饰了别人的梦。喜欢这首诗是因为觉得开源造福了我&#xff0c;我也在尝试贡献自己的力量&#xff0c; 成就他人的同时&#xff0c; 也成就了自己&#xff0c; 贡献开源事业的同时&#xff…

oracle监听

原理 客户端向服务器端发送连接请求&#xff0c;监听器监听到客户端德连接请求监听器监听到客户端德连接请求后&#xff0c;把客户端德连接请求交给数据库服务器处理客户端和服务器端建立连接&#xff0c;连接建立后&#xff0c;服务器端和客户端直接通信&#xff0c;而不再需要…

车窗上为啥总有一些小黑点?没想到居然藏着大作用!

全世界只有3.14 % 的人关注了爆炸吧知识经常坐车的人可能会发现一个小细节车窗边缘有一圈小黑点好多人都以为这个厂家的贴纸反正也不碍事就没去除它其实&#xff0c;这些小黑点确实有真正的科学用途其实并不是所有的车窗都有小黑点也可能是别的形状但是它们都有一个特点——都是…

mysql 免安装初始化_mysql免安装版配置步骤详解分享

1.准备工作下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip&#xff0c;解压缩到相关目录&#xff0c;如&#xff1a;d:\\ mysql-noinstall-5.1.53-win32。这个就是mysql的根目录了。2.配置在根目录下有几个文件如下&#xff1a;my-small.ini (这是针对一个小内存(…

Android之Shape和state_enabled使用总结

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,首先我们了解一下Shape下面有哪些标签,都代表什么意思: solid:填充android:color指定填充的颜色 gradient:渐变android:startColor和android:endColor分别为起始和结束颜色, android:angle是渐…

装饰模式

JAVA23种设计模式之一&#xff0c;英文叫Decorator Pattern&#xff0c;又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下&#xff0c;动态的扩展一个对象的功能. 1、装饰模式与类继承的区别&#xff1a; 1) 装饰模式是一种动态行为&#xff0c;对已经存在类…

Win11安卓极速教程!

适用于 Android 的 Windows 子系统&#xff08;以下简称“WSA”&#xff09;使你的 Windows 11 电脑能够运行 Android 应用。※ 如何在 Windows 11 上运行 Android 应用此前的教程较为详细&#xff0c;但也繁琐&#xff0c;尤其是 adb 部署部分&#xff0c;不适合新手入门&…

ubuntu12.04 使用gedit 打开txt文件中文乱码的处理方法

2019独角兽企业重金招聘Python工程师标准>>> gedit --encodingGB18030 filename.txt 转载于:https://my.oschina.net/zhangdapeng89/blog/58965