将ajax请求封装为一个对象(原生js)
来源:互联网 发布:idea创建web项目ubuntu 编辑:程序博客网 时间:2024/04/20 11:11
var AjaxUtil = {// 默认基础选项options : {method : "get", //默认提交的方法url : "", //请求的路径 requiredparams : {}, //请求的参数type : 'text', //返回的内容的类型,text,xml,jsoncallback : function() {}//回调函数required},//创建XMLHttpRequest对象creatRequest : function() {var xmlhttp;try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); //IE6以上版本} catch (e) {try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE6以下版本} catch (e) {try {xmlhttp = new XMLHttpRequest();if(xmlhttp.overrideMimeType) {xmlhttp.overrideMimeType("text/xml");}} catch (e) {alert("您的浏览器不支持Ajax");}}}return xmlhttp;},// 设置基础选项,覆盖默认项setOption : function(newOptions) {for (var pro in newOptions) {this.options[pro] = newOptions[pro];}},// 格式化请求参数formateParameters : function() {var paramsArray = [];var params = this.options.params;for (var pro in params) {var paramValue = params[pro];/*if(this.options.method.toUpperCase() === "GET"){paramValue = encodeURIComponent(params[pro]);}*/paramsArray.push(pro + "=" + paramValue);}return paramsArray.join("&");//method = get&url=&callback=&type=text},// 状态改变的处理readystatechange : function(xmlhttp) { // 获取返回值 var returnValue; if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { switch (this.options.type) { case "xml": returnValue = xmlhttp.responseXML; break; case "json": var jsonText = xmlhttp.responseText; if(jsonText){ returnValue = eval("(" + jsonText + ")"); } break; default: returnValue = xmlhttp.responseText; break; } if (returnValue) { this.options.callback.call(this, returnValue); } else { this.options.callback.call(this); } } }, // 发送Ajax请求 //{'method':'get'} request : function(options) { var ajaxObj = this; // 设置参数 ajaxObj.setOptions.call(ajaxObj, options); // 创建XMLHttpRequest对象 var xmlhttp = ajaxObj.createRequest.call(ajaxObj); // 设置回调函数 xmlhttp.onreadystatechange = function() { ajaxObj.readystatechange.call(ajaxObj, xmlhttp); }; // 格式化参数 var formateParams = ajaxObj.formateParameters.call(ajaxObj); // 请求的方式 var method = ajaxObj.options.method; var url = ajaxObj.options.url; if ("GET" === method.toUpperCase()) { url += "?" + formateParams; } // 建立连接 xmlhttp.open(method, url, true); if ("GET" === method.toUpperCase()) { xmlhttp.send(null); } else if ("POST" === method.toUpperCase()) { // 如果是POST提交,设置请求头信息 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(formateParams); } }};
阅读全文
1 0
- 将ajax请求封装为一个对象(原生js)
- 原生JS封装AJAX请求
- 原生js封装ajax请求
- 原生JS封装的ajax请求
- 一个原生js操作Ajax封装
- 原生js封装Ajax
- 原生js封装ajax
- 原生JS封装Ajax
- 原生JS封装ajax()
- js原生ajax请求
- 原生ajax请求二次封装
- Javascript封装原生ajax请求
- 原生js封装AJAX(代码+注释)
- 自己做工具--用原生js封装一个AJAX插件
- 原生js封装ajax方法
- 原生js封装ajax函数
- 原生JS封装ajax方法
- js 原生ajax:封装函数
- HDU-1233 还是畅通工程(最小生成树Prim算法)
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)
- java前奏
- 字符串截取
- Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 解决方案
- 将ajax请求封装为一个对象(原生js)
- Andriod 出现SIGILL 异常
- springmvc 请求400 bad request(授之以鱼不如授之以渔,使用firebug找错)
- PAT 乙级 1004
- OTA升级Google官方文档翻译——OTA Package Tools
- linux下openoffice启动和自动启动设置(centos)
- 网页嵌入iframe底部的空白
- 51nod 1875-丢手绢(打表)
- java命名规范