ajax封装最后形态
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封装最后形态的更多相关文章
- Javascript:来一个AJAX封装函数
前不久换工作了,最近一直在出差,忙得跟狗一样,所以博客都荒废许久了. 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于 ...
- 妹味6:ajax与ajax封装
(功能)ajax能且仅能 从服务器读取文件 (环境)需要服务器环境才能测试,可以用工具建立本地服务器环境 (缓存)解决缓存问题:url加时间戳让每次请求地址唯一,如 url='abc.txt?t='+ ...
- ajax请求原理及jquery $.ajax封装全解析
.ajax原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得 ...
- Ajax封装函数笔记
Ajax封装函数: function ajax(method, url, data, success) { //打开浏览器 //1.创建一个ajax对象 var xhr = null; try { x ...
- 原生ajax封装,包含post、method方式
原生ajax封装,包含post.method方式 function ajax(method, url, data, success) { var xhr = null; try { xhr = new ...
- Ajax工作原理和原生JS的ajax封装
前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...
- 我的前端工具集(六)Ajax封装token
我的前端工具集(六)Ajax封装token liuyuhang原创,未经允许禁止转载 在单点登陆中,或登陆验证后,不应该每次都验证用户名和密码, 也不应该将用户名密码存入cookie中(虽然很多都 ...
- AJAX - 封装的传参改为传入对象 XML JSON 数据格式
Ajax封装函数,上次是直接传参,这次在原来的基础上改进,模仿jQuery 直接传入对象,把之前的参数都变为这个对象的属性. 这样可以随意调换传入数据的次序. 其他优点? 需要再复习一下. Ajax处 ...
- 简单的基于promise的ajax封装
基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...
随机推荐
- 2019-1-29-dotnet-使用-Qpush-快速从电脑到手机推送文字
title author date CreateTime categories dotnet 使用 Qpush 快速从电脑到手机推送文字 lindexi 2019-01-29 16:22:56 +08 ...
- TZOJ 4024 游戏人生之梦幻西游(连续子段和绝对值最小)
塔神酷爱玩梦幻西游这款游戏,这款游戏以著名的章回小说<西游记>故事为背景,透过Q版的人物,营造出浪漫的网络游戏风格.塔神以追求天下无敌为目标,从一个默默无闻的菜鸟,打拼到了登峰造极的大师, ...
- Luogu P3254 圆桌问题(最大流)
P3254 圆桌问题 题面 题目描述 假设有来自 \(m\) 个不同单位的代表参加一次国际会议.每个单位的代表数分别为 \(r_i (i =1,2,--,m)\) . 会议餐厅共有 \(n\) 张餐桌 ...
- 巧用tar命令
tar命令可以对文件进行归档.它最初设计是用来将数据存储在磁带上.tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文件属性,如所有者.权限等.由tar创建的文件通常称为Tarball.下 ...
- apk反编译(6)用ProGuard 混淆、压缩代码,压缩资源。
1.android官方文档 https://developer.android.com/studio/build/shrink-code 主要内容如下: 1.1 压缩代码 混淆生成的文件:<m ...
- NACOS集群搭建遇到的问题
搭建NACOS官网教程: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 这里说的很详细了.也有中文的.我就记录一下在搭建集群的时候 ...
- Django高级实战 开发企业级问答网站
Django高级实战 开发企业级问答网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的 ...
- MacBook下为要运行的.net core 项目指定sdk版本
安装完.net core 3.0,运行早期版本构建的项目遇到运行错误,查阅官方文档解决问题,特此记录!官方原文如下: SDK 使用最新安装的版本 SDK 命令包括 dotnet new 和 dotne ...
- Oracle中with as用法
with as 相当于虚拟视图. 例子:需求描述 按照x列分组后统计y列的总值,最终目标是选出比y列总值的三分之一大的那些分组统计信息 使用子查询方式实现最容易想到的方法 SELECT x, SU ...
- golang之结构体
Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. Go语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型. Go 语言中的类型可以被实例化,使用new或&a ...