首页 > 网站 > WEB开发 > 正文

原生 ajax 封装

2024-04-27 15:19:36
字体:
来源:转载
供稿:网友
//http://192.168.*.**:8080/hohjkhklhkhkhjkl/ActivityLogInterface/setlog_activity?activityId=XXXX&userId=XXX&PRePage=xxx&nextPage=xxx&userip=xxxx&from_pid=xxxxvar logAjaxActionUrl = "http://**********:8080/xjcartoon_activity_BtopInterface/";//ajax 请求//同步,异步请求   /***url :请求接口地址*xhr:对象*Async:是否是异步请求(true:异步;false:同步)*method:请求方式(POST或GET)*params:请求传送的参数*Content-Type:请求头格式要求*data:请求获取到的信息*****调用方法:ajax.init({url:"http://r.qzone.QQ.com/cgi-bin/user/cgi_personal_card",method:"get",params:{"format":"json","ip":"192.168.1.255"},async:true,ContentType:"application/x-www-form-urlencoded",success:function(data){aa.innerHTML=data;},fail:function(status){}});*/ function AjaxFun(option){this.option=null;this.url=null;//请求地址this.Async=null;//是否异步请求;this.method=null;//请求方式this.formatParams=function(data){//对传参进行编码    var arr=[];for(var name in data){arr.push(encodeURIComponent(name)+"="+encodeURIComponent(data[name]));}// arr.push(("v="+Math.random()).replace(".",""));return arr.join("&");}this.params=null;this.contentType=null;this.data=null;//请求获取到的信息    this.init=function(option){//初始化this.option=option||{};this.url=this.option.url;//请求地址this.Async=this.option.async||true;//是否异步请求;this.method=this.option.method.toUpperCase();//请求方式this.params=this.formatParams(this.option.params);this.contentType=this.option.ContentType||"";this.data=null;//请求获取到的信息//创建对象//console.log(this.formatParams)   var xhr;if (window.xmlHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safarixhr=new xmlhttpRequest(); }else {// code for IE6, IE5    xhr=new ActiveXObject("Microsoft.XMLHTTP"); }//接收请求xhr.onreadystatechange=function(){if(xhr.readyState == 4 ){if(xhr.status == 200){ option.success && option.success(eval("("+xhr.responseText+")"));                } else {                    option.fail && option.fail(status);//window.location.href="404.html";                }}} //判断请求方式if(this.method=="POST"){xhr.open(this.method,this.url,this.Async);//设置提交时的内容类型if(this.contentType==""){xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");}else{ xhr.setRequestHeader("Content-type",this.contentType);}xhr.send(this.params);}else if(this.method=="GET"){xhr.open(this.method,this.url+"?"+this.params,this.Async);xhr.send(null);}};}var ajax=new AjaxFun();function setCookie(name,value){var Days = 30;var exp = new Date();exp.setTime(exp.getTime() + Days*24*60*60*1000);document.cookie = name + "="+  value + ";expires=" + exp.toGMTString();}function getCookie(name) {var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");if (arr = document.cookie.match(reg))return unescape(arr[2]);elsereturn null;}/** *  * @param {Object} userId  用户信息 * @param {Object} from_pid 来源 * @param {Object} next_id 请求详情Id */  function setLogInfo(userId,activityId,from_pid,next_id){  var params = new Object();//暂时设定一个定值的userid和user_ipparams.userId = userId;   //params.user_ip = "8851003273568946";   params.from_pid = from_pid;   //上一个页面   params.prev_page = document.referrer || '';   //当前页面地址   params.next_page = document.URL || '';   params.next_id = next_id;   //拼接参数串   var args = '';    for(var i in params) {       if(args != '') {           args += '&';       }          args += i + '=' + encodeURIComponent(params[i]);   }var img=new Image(1,1);img.src = logAjaxActionUrl+'ActivityLogInterface/setlog_activity?loggerType=page&' + args;  }//activityId=XXXX&userId=XXX&prePage=xxx&nextPage=xxx&userIp=xxxx&from_pid=xxxx/*    function ajax(options) {        options = options || {};        options.type = (options.type || "GET").toUpperCase();        options.dataType = options.dataType || "json";        var params = formatParams(options.data);        //创建 - 非IE6 - 第一步        if (window.XMLHttpRequest) {            var xhr = new XMLHttpRequest();        } else { //IE6及其以下版本浏览器            var xhr = new ActiveXObject('Microsoft.XMLHTTP');        }        //接收 - 第三步        xhr.onreadystatechange = function () {            if (xhr.readyState == 4) {                var status = xhr.status;                if (status >= 200 && status < 300) {                    options.success && options.success(xhr.responseText, xhr.responseXML);                } else {                    options.fail && options.fail(status);                }            }        }        //连接 和 发送 - 第二步        if (options.type == "GET") {            xhr.open("GET", options.url + "?" + params, true);            xhr.send(null);        } else if (options.type == "POST") {            xhr.open("POST", options.url, true);            //设置表单提交时的内容类型            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");            xhr.send(params);        }    }    //格式化参数    function formatParams(data) {        var arr = [];        for (var name in data) {            arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name]));        }        arr.push(("v=" + Math.random()).replace(".",""));        return arr.join("&");    }*/
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表