function obj1(obj) {
obj.t = new Date().getTime();
var res = [];
for (var key in obj)
//url中不能出现中文
res.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key])) return res.join("&");
}
function ajax(type, url, obj , success, error, timeout){ var str = obj1(obj);
//创建一个异步对象
// var xmlhttp = new XMLHttpRequest();
// 设置请求方式以及请求地址
var xmlhttp;
var timer;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest(); }else{
xmlhttp = new ActiveXObject();
} if (type === "GET"){
xmlhttp.open(type,url+"?"+str, true);
// 发送请求
xmlhttp.send();
} else {
xmlhttp.open(type, url, true);
//放在open与send之间
xmlhttp.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
// 发送请求
xmlhttp.send(str);
// 监听状态变化
} // 监听状态变化
xmlhttp.onreadystatechange = function () {
clearInterval(timer);
// 接收到服务器返回的数据
if (xmlhttp.readyState === 4){
if (xmlhttp.status >=200 && xmlhttp.status <=300 ||
xmlhttp.status === 304){
console.log("接收到服务器返回的数据");
success(xmlhttp);
}else{
// console.log("没有接收到服务器返回的数据");
error(xmlhttp);
}
}
};
if (timeout){
timer = setInterval(function () {
console.log("请求时间过长,中断请求");
xmlhttp.abort();
clearInterval(timer); },timeout);
}
}

ajax封装最后形态的更多相关文章

  1. Javascript:来一个AJAX封装函数

    前不久换工作了,最近一直在出差,忙得跟狗一样,所以博客都荒废许久了. 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于 ...

  2. 妹味6:ajax与ajax封装

    (功能)ajax能且仅能 从服务器读取文件 (环境)需要服务器环境才能测试,可以用工具建立本地服务器环境 (缓存)解决缓存问题:url加时间戳让每次请求地址唯一,如 url='abc.txt?t='+ ...

  3. ajax请求原理及jquery $.ajax封装全解析

    .ajax原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得 ...

  4. Ajax封装函数笔记

    Ajax封装函数: function ajax(method, url, data, success) { //打开浏览器 //1.创建一个ajax对象 var xhr = null; try { x ...

  5. 原生ajax封装,包含post、method方式

    原生ajax封装,包含post.method方式 function ajax(method, url, data, success) { var xhr = null; try { xhr = new ...

  6. Ajax工作原理和原生JS的ajax封装

    前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...

  7. 我的前端工具集(六)Ajax封装token

    我的前端工具集(六)Ajax封装token   liuyuhang原创,未经允许禁止转载 在单点登陆中,或登陆验证后,不应该每次都验证用户名和密码, 也不应该将用户名密码存入cookie中(虽然很多都 ...

  8. AJAX - 封装的传参改为传入对象 XML JSON 数据格式

    Ajax封装函数,上次是直接传参,这次在原来的基础上改进,模仿jQuery 直接传入对象,把之前的参数都变为这个对象的属性. 这样可以随意调换传入数据的次序. 其他优点? 需要再复习一下. Ajax处 ...

  9. 简单的基于promise的ajax封装

    基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...

随机推荐

  1. springcloud:RPC和HTTP

    1.RPC和HTTP 无论是微服务还是SOA,都面临着服务间的远程调用.那么服务间的远程调用方式有哪些呢? 常见的远程调用方式有以下2种: RPC:Remote Produce Call远程过程调用, ...

  2. 微信公众号菜单demo

    { "button": [ { "name": "客户中心", "sub_button": [ { "type ...

  3. PHP--http_build_query--把数组化成&key=value方式

  4. phpstudy安装好之后mysql无法启动(亲测可行)

    安装好phpstudy后,Apache可以启动,Mysql无法启动. 尝试解决办法:可能是之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务. 在cmd命令行下输入:sc ...

  5. Python3入门机器学习 经典算法与应用

    Python3入门机器学习 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关注下 ...

  6. oracle创建定时任务

    一.dmbs_job dbms_job涉及到的知识点 1.创建job: variable jobno number; dbms_job.submit(:jobno, —-job号  'your_pro ...

  7. 洛谷P1263 宫廷守卫

    P1263 宫廷守卫 题目描述 从前有一个王国,这个王国的城堡是一个矩形,被分为M×N个方格.一些方格是墙,而另一些是空地.这个王国的国王在城堡里设了一些陷阱,每个陷阱占据一块空地. 一天,国王决定在 ...

  8. Jquery选择器分类:基本选择器,层次选择器,过滤选择器,表单选择器。

    基本选择器 说明:通过元素id.class和标签名等来查找DOM元素 1.id选择器:$("#test");//选取id为test的元素 2.类选择器:$(".test& ...

  9. 表格存储TableStore2.0重磅发布,提供更强大数据管理能力

    表格存储TableStore是阿里云自研的面向海量结构化和半结构化数据存储的Serverless NoSQL多模型数据库,被广泛用于社交.物联网.人工智能.元数据和大数据等业务场景.表格存储Table ...

  10. 模拟3题解 T3建造游乐园

    T3建造游乐园 这题的关键是推式子 i个点中,有g[i]个方案是度为偶数但不一定连通那么就要减去不合法的设已有j个合法,其个数为f[j],剩下i-j个的方案数是g[i-j]选出来一个固定的点在合法的j ...