加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax个人学习笔记

发布时间:2020-12-16 00:17:46 所属栏目:百科 来源:网络整理
导读:1. function createXHR(){ if(typeof XMLHttpRequest != 'undefined'){ return new XMLHttpRequest(); }else if(typeof ActiveXObject != 'undefined'){ var version = ['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp' ]; for(var i=0;iversion
1. function createXHR(){ if(typeof XMLHttpRequest != 'undefined'){ return new XMLHttpRequest(); }else if(typeof ActiveXObject != 'undefined'){ var version = ['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp' ]; for(var i=0;i<version.length;i++){ try{ return ActiveXObject(version[i]); }catch(e){ } } }else{ throw new Error('你的系统或浏览器不支持XHR'); } } 2.IE浏览器第一次向服务器端请求,获取最新数据,其后默认获取的是缓存数据,而不是最新的数据,可以使用js中的随机字符串处理。 3.ajax异步(true)过程中需要readyState=4值的判定 4.xhr.getAllResponseHeaders();xhr.getResponseHeader();xhr.setRequestHeader();xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');模拟表单提交. 5.ajax自定义封装: function ajax(obj){ var xhr = createXHR(); obj.url = obj.url + '?rand=' + Math.random(); obj.data = params(obj.data); if(obj.method === 'get') obj.url += obj.url.indexOf("?") == -1? '?'+obj.data:'&'+obj.data; if(obj.async === true){ xhr.onreadystatechange = function(){ if(xhr.readyState ==4 ){ callback(); } }; }else{ callback(); } xhr.open(obj.method,obj.url,obj.async); if(obj.method === 'post'){ xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode'); xhr.send(obj.data); }else{ xhr.send(null); } function params(data){ var arr = []; for(var i in data){ arr.push(encodeURLComponent(i) + '=' + encodeURIComponent(data[i])); } return arr.join('&'); } function callback(){ if(xhr.status == 200){ obj.success(xhr.responseText); }else{ alert('获取数据错误!错误代码:'+ xhr.status + ',错误信息:'+ xhr.statusText); } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读