Ajax封装
发布时间:2020-12-15 22:00:44 所属栏目:百科 来源:网络整理
导读:// 创建XHRfunction createXHR(){if (typeof XMLHttpRequest != 'undefined'){ // W3C标准return new XMLHttpRequest();} else if (typeof ActiveXObject != 'undefined'){ // IEvar versions = ['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp
// 创建XHR function createXHR(){ if (typeof XMLHttpRequest != 'undefined'){ // W3C标准 return new XMLHttpRequest(); } else if (typeof ActiveXObject != 'undefined'){ // IE var versions = [ 'MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp' ]; for (var i=0; i<versions.length; i++){ try{ return new ActiveXObject(versions[i]); } catch (e){ } } } else { throw new Error("您的浏览器不支持XHR对象!"); } } // 将json对象转换为json字符串,并以&连接 function params(data){ var strArr = []; for (var i in data){ strArr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i])); } return strArr.join("&"); }; //Ajax封装 function ajax(obj){ var xhr = createXHR(); obj.data = params(obj.data); if (obj.method=='get'){ obj.url += obj.url.indexOf("?")==-1? "?"+data : data; } else if (obj.method=='post'){ obj.url = obj.url; } if (obj.async == true){ // 异步 xhr.onreadystatechange = function(){ if (xhr.readyState === 4){ callback(); } } } else if (obj.async == false){ // 同步 callback(); } xhr.open(obj.method,obj.url,obj.async); if (obj.method == 'get'){ xhr.send(null); } else if (obj.method == 'post'){ xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send(obj.data); } function callback(){ if(xhr.status == 200){ //如果返回成功了 obj.success(xhr.responseText); // 回调函数 }else{ alert('数据返回失败!状态代码:' +xhr.status+'状态信息:' +xhr.statusText); } } } 调用ajax()方法 // Ajax 调用 var callAjax = function(){ ajax({ method: "post",url: "ajax.php",data: { "name": "wuguojun","age": 24 },success: function(result){ alert(result); },async: true }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – Ruby解释器(CUI)1.9.2p180 [i386-mingw32
- oracle 12c ORA-01017:invalid username/password; logon
- Globus Toolkit 4 (GT4) 完全安装手册
- ruby-on-rails – 为什么切片参数哈希在质量分配上造成安全
- c# – 使用文件IO的单元测试方法
- Oracle BULK COLLECT批量取数据解决方法
- ArcGIS API For Flex对ImageServer发布的服务进行渲染及Ras
- jsf-2 – 使用AJAX的CDI @ConversationScoped
- flex与几种页面间的交互方式
- 【Swift基础】Swift 4.0学习笔记