Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > ajax

Ajax异步(请求)提交类 支持跨域

来源:中文源码网    浏览:180 次    日期:2024-04-29 13:54:24
【下载文档:  Ajax异步(请求)提交类 支持跨域.txt 】


Ajax异步(请求)提交类 支持跨域
复制代码 代码如下:/**//* 异步请求类 作者:吾非无心 创建时间:2009.2 --------------------------------------------------------------------------------------------------------------------------------- 修改记录: 2009.4.27――添加 URL 检测功能,如果是“http://xxxx.xxx.xx.xx/..”这样的格式,使用系统提供的“/getUrl.aspx”进行获取 以解决跨域问题。 getUrl.aspx 的主要参数有两个:1、url 值为目标URL(URL中可以带参数)――必须;2、method 值为代理使用的方法(可选) 如果method为空,默认采用POST方法进行代理;如果FORM参数为空(即request.content-length=0),则自动设置为GET方法; (注:getUrl.aspx在2009.4.27重新进行了设计,在原完成代理的基础上,新增了Cookie代理) */ function IsOuterURL(str_url){ var strRegex = "((https|http)://)([\\w-]+\\.)+[\\w-]+.([^a-z])(/[\\w-./?%&=]*)?|((https|http)://)[a-zA-Z0-9\\-\\.][\\w-]+.([^a-z])(/[\\w-./?%&=]*)?"; var re=new RegExp(strRegex); if (re.test(str_url)){ return (true); }else{ return (false); } } var LeesAjaxRequest= { list:[], m_LeesAjaxHttpRequest:null, isWorking:false, getUrl:function(method,url,params,successFun,FailureFun,headers) { if(url.length<1) return; if(this.m_LeesAjaxHttpRequest==null) { if (typeof XMLHttpRequest != 'undefined') { this.m_LeesAjaxHttpRequest = new XMLHttpRequest(); } else if (typeof ActiveXObject != 'undefined') { this.m_LeesAjaxHttpRequest = new ActiveXObject('Microsoft.XMLHTTP'); } } if (this.m_LeesAjaxHttpRequest) { if(this.isWorking) { this.list[this.list.length]={method:method,url:url,params:params,successFun:successFun,failureFun:FailureFun,headers:headers}; } else { this.isWorking=true; if(IsOuterURL(url)) this.m_LeesAjaxHttpRequest.open(method, "/geturl.aspx?url="+escape(url)+"&method="+method, true);//true为异步 else this.m_LeesAjaxHttpRequest.open(method, url, true);//true为异步 var _this=this; this.m_LeesAjaxHttpRequest.onreadystatechange=function() { if(4==_this.m_LeesAjaxHttpRequest.readyState) { if(200==_this.m_LeesAjaxHttpRequest.status) { if(successFun) { try{ successFun(_this.m_LeesAjaxHttpRequest); } catch(ex) {} } } else { if(FailureFun) { try{ FailureFun(_this.m_LeesAjaxHttpRequest); } catch(ex) {} } } _this.isWorking=false; if(_this.list.length>0) { var o=_this.list[0]; _this.list.splice(0,1); _this.getUrl(o.method,o.url,o.params,o.successFun,o.failureFun,o.headers); } } }; var vPara=""; if(typeof params=="string") { vPara=escape(params); } else if(params) { try { for(var e in params) { if(vPara.length<1) vPara=e+"="+escape(params[e]); else vPara+="&"+e+"="+escape(params[e]); } } catch(ex) {} } if(headers) { try { for(var h in headers) { this.m_LeesAjaxHttpRequest.setRequestHeader(h.replace("_","-"),headers[h]); } } catch(ex) { } } this.m_LeesAjaxHttpRequest.send(vPara); } } }, Post:function(o) { var vMethod=o.method||"post"; var vUrl=o.url||null; var vParams=o.params||""; var vSuccess=o.success||null; var vFailure=o.failure||null; var vHeaders=o.headers||null; if(vUrl==null||vUrl.length<1) { //alert("异步请求格式错误"); return; } this.getUrl(vMethod,vUrl,vParams,vSuccess,vFailure,vHeaders); }, Get:function(o) { var vMethod=o.method||"get"; var vUrl=o.url||null; var vParams=o.params||""; var vSuccess=o.success||null; var vFailure=o.failure||null; var vHeaders=o.headers||null; if(vUrl==null||vUrl.length<1) { //alert("异步请求格式错误"); return; } this.getUrl(vMethod,vUrl,vParams,vSuccess,vFailure,vHeaders); } } /**//*异步请求类 END*/ 使用示例: 复制代码 代码如下: 1.//动态装载JS文件 if(vJS && vJS.length>3) { if(!_this.loadedJS.isInArray(vJS)) { _this.loadedJS[_this.loadedJS.length]=vJS; LeesAjaxRequest.Get({ url:vJS, success:function(ojs){ var jsOBJ=document.createElement("script"); jsOBJ.text=ojs.responseText; document.documentElement.appendChild(jsOBJ); },//end success headers:{Content_Type:"application/x-javascript"} });//end Get }//end if ( !_this.loadedJS.isInArray(vJS)) }//end if(vJS && vJS.length>3) 2 .//添加到工具提示竖条上 LeesAjaxRequest.Post({url:"/getToolTip.aspx", params:{tooltip:title}, headers:{Content_Type:"application/x-www-form-urlencoded;charset=utf-8"},//如果使用Post方法,必须传入此参数,charset可以为别的 success:function(o){ var rObj=eval("("+o.responseText+")"); var tObj=new LeesBaseWindow(rObj["width"]+2,rObj["height"]+1,"","","","","",1,""); tObj.ShowWindow(vToolBarSlider.window); tObj.contentWindow.style.backgroundImage="url("+rObj["image"]+")"; tObj.contentWindow.style.marginLeft="1px"; tObj.contentWindow.style.backgroundRepeat="no-repeat"; tObj.contentWindow.style.backgroundPosition="0 0"; tObj.contentWindow.onmouseover=function(){ this.style.backgroundPosition="0 -"+rObj.height; _this.setShowWindow(obj); } tObj.contentWindow.onmouseout=function(){ this.style.backgroundPosition="0 0"; } }, failure:function(){ alert("生成ToolTip时出错"); } });

相关内容