实例如下:
// 使用原生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" : "demo.php",
"data" : {
"name" : "gao",
"age" : 100,
"num" : "12346&598"
},
"success" : function(data){
alert(data);
},
"Error" : function(text){
alert(text);
},
"async" : false
});
}
以上这篇使用原生js写ajax实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# 原生js写ajax
# 原生js实现ajax方法(超简单)
# 原生JS简单实现ajax的方法示例
# 给大家
# 您的
# 希望能
# 不支持
# 这篇
# 错误信息
# 小编
# 跳过
# 大家多多
# 判断是否
# XMLHttp
# throw
# lt
# length
# catch
# join
# encodeURIComponent
# amp
# obj
# ga_ajax
相关文章:
建站主机默认首页配置指南:核心功能与访问路径优化
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
C++时间戳转换成日期时间的步骤和示例代码
如何通过二级域名建站提升品牌影响力?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何高效配置香港服务器实现快速建站?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
Python路径拼接规范_跨平台处理说明【指导】
如何高效完成独享虚拟主机建站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
孙琪峥织梦建站教程如何优化数据库安全?
网站设计制作企业有哪些,抖音官网主页怎么设置?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
Swift开发中switch语句值绑定模式
如何通过西部建站助手安装IIS服务器?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站之星如何助力网站排名飙升?揭秘高效技巧
如何访问已购建站主机并解决登录问题?
nginx修改上传文件大小限制的方法
如何在建站主机中优化服务器配置?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何挑选优质建站一级代理提升网站排名?
建站之星安装失败:服务器环境不兼容?
广州营销型建站服务商推荐:技术优势与SEO优化解析
无锡营销型网站制作公司,无锡网选车牌流程?
linux top下的 minerd 木马清除方法
如何快速生成橙子建站落地页链接?
网站制作网站,深圳做网站哪家比较好?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
宝塔面板如何快速创建新站点?
如何选择美橙互联多站合一建站方案?
如何撰写建站申请书?关键要点有哪些?
如何用VPS主机快速搭建个人网站?
视频网站制作教程,怎么样制作优酷网的小视频?
音乐网站服务器如何优化API响应速度?
如何规划企业建站流程的关键步骤?
网站制作需要会哪些技术,建立一个网站要花费多少?
制作网站的基本流程,设计网站的软件是什么?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
建站VPS配置与SEO优化指南:关键词排名提升策略
开心动漫网站制作软件下载,十分开心动画为何停播?
建站之星如何配置系统实现高效建站?
南京网站制作费用,南京远驱官方网站?
简单实现Android验证码
建站主机SSH密钥生成步骤及常见问题解答?
*请认真填写需求信息,我们会在24小时内与您取得联系。