js原生创建封装ajax的方法,附XMLHttpRequest状态码
来源:互联网 发布:windows phone10虚拟机 编辑:程序博客网 时间:2024/06/06 04:07
//创建var gc = gc || {};gc.ajax = function(options){//options = {url:'',method:'',data:'',callback:'',async:''} //默认参数 options.url = options.url || '', options.method = options.method || 'get', options.data = options.data || '', options.callback = options.callback || '', options.async = options.async || true; //get请求-拼接url if(options.method.toLowerCase() == 'get'){ if(typeof options.data == 'object'){ options.data = []; for (var k in options.data){ options.data.push(k+'='+options.data[k]); options.data.join('&'); } } options.url += (options.url.indexOf('?' == -1) ? '?' : '') + options.data; } //post请求-转换字符串 if(options.method.toLowerCase() == 'post'){ if(typeof options.data == 'object'){ var arrs = []; for (var k in options.data){ arrs.push(k+'='+options.data[k]); } options.data = arrs.join('&'); } } //创建发送请求 var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //兼容ie xhr.open(options.method,options.url,options.async); if(options.method == 'post'){ xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(options.data); }else{ xhr.send(null); } //异步请求 if(options.async == true){ xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ callcall(); } } } // xhr.abort(); // 取消异步请求 //同步请求 if(options.async == false){ callcall(); } //返回状态判断 function callcall(){ if(xhr.status == 200){ options.callback(xhr.responseText); }else{ options.callback('error:' + xhr.status + xhr.statusText); } }};//调用gc.ajax({ method:'post', url:'wz/special/audi/draw.xhtml', data:{mobile:'13800000000',memberi:'fwwd',captchaId:'3454353454',seller:'345345'}, callback:function(res){ console.log(res) }});
XMLHttpRequest 的readyState状态。从 0 到 4 发生变化
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
XMLHttpRequest 对象的 status 和 statusText 属性保存有服务器返回的 http 状态码,不同的是,status 属性保存的状态码是以数字表示的,而 statusText 属性保存的状态码是以字符串表示的。
1 0
- js原生创建封装ajax的方法,附XMLHttpRequest状态码
- 原生js封装ajax方法
- 原生JS封装ajax方法
- 原生js封装ajax方法
- Ajax中封装创建XMLHttpRequest对象的方法
- Ajax中封装创建XMLHttpRequest对象的方法
- JS-封装 ajax XmlHttpRequest
- 习惯了使用jQuery的ajax方法,看看原生js使用xmlhttpRequest实现ajax请求
- 原生js封装Ajax
- 原生js封装ajax
- 原生JS封装Ajax
- 原生JS封装ajax()
- Js中的Ajax XMLHttpRequest的创建
- Ajax原理-原生js的XMLHttpRequest对象意义
- Ajax原理-原生js的XMLHttpRequest对象意义
- 原生JS封装的ajax请求
- 原生JS的Ajax方法
- ajax 的XMLHttpRequest的状态码研究
- Bean的初始化和销毁
- XCode 7上传遇到ERROR ITMS-90535 Unexpected
- plsql破解的办法
- poj 2376 Cleaning Shifts 贪心 区间问题
- Python yield 官方详解(基于2.x)
- js原生创建封装ajax的方法,附XMLHttpRequest状态码
- ListView和Gridview设置setOnItemClickListener无效解决方案
- LeetCode 171 Excel Sheet Column Number
- android button设计模拟器
- 图片轮播器
- 启动 asmca 时出现 No protocol specified 错误的解决办法
- Jquery 工具类函数
- gnuradio模块的数据输出
- linux程序开机自启动的方法详解