查看文章 |
js ajax操作
2008年08月08日 星期五 下午 02:07
function js_Ajax(method,synchronous){ this._httpReq = false; /*ajax初始化对象*/ this.method = method; /*get|post*/ this.syn = synchronous; /*是否采用异步请求,默认true*/ this.url = ""; /*提交异步请求的url地址*/ this.resType = ""; /*异步请求返回数据类型text|xml*/ this.callback = ""; /*异步请求完成后的回滚函数*/ this.loading = ""; /*load函数*/ this.content = null; /*Ajax中send方法的参数*/ this.readystate = -1; /*ajax的请求状态*/ this.state = -1; /*http请求响应代码*/ /************ get/set方法开始 ***************/ //设置提交异步请求的url地址 this.setUrl = function (url){ this.url = url; } //设置异步请求返回数据类型text|xml this.setResType = function (restype){ this.resType = restype; } //设置回滚函数 this.setCallback = function (func){ this.callback = func; } //设置load函数 this.setLoading = function (loadFunc){ this.loading = loadFunc; } //设置send自带的参数值,默认null this.setContent = function (contents){ this.content = contents; } /*********get/set方法结束*******/ /*********状态显示方法*********/ //调用window.alert方法 this.alert = function (msg){ window.alert(msg); } //调用window.status的方法 this.status = function (msg){ window.status = msg; } /*********状态显示方法结束*********/ /*************执行方法开始*****************/ //创建HttpXMLRequest this.createXMLRequest = function(){ if(window.XMLHttpRequest){ this._httpReq = new XMLHttpRequest(); if(this._httpReq.overrideMimeType){ this._httpReq.overrideMimeType("text/xml"); } }else if(window.ActiveXObject){ try{ this._httpReq = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ this._httpReq = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } } } //初始化ajax对象 this.init = function(){ this.createXMLRequest(); } //发送一个http请求 this.send = function (){ if(this.resType.toLowerCase()=="post"){ _httpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } this._httpReq.open(this.method,this.url,this.syn); this._httpReq.send(this.content); } //取消一个http请求 this.abort = function (){ this._httpReq.abort(); } this.callbackState = function(){ switch(this._httpReq.readyState){ case 0: this.readystate = 0; break; case 1: this.readystate = 1; break; case 2: this.readystate = 2; break; case 3: this.readystate = 3; break; case 4: this.readystate = 4; switch(this._httpReq.status){ case 200: eval(this.callback); break; case 202: this.status("请求处理中,还没处理完毕!"); break; case 400: this.status("错误的请求!"); break; case 404: this.status("请求资源未找到!"); break; case 500: this.status("内部服务器错误,请联系管理员!"); break; default: this.status("返回数据失败,"+this._httpReq.status); break; } break; default: this.readystate = 0; break; } } this.onReadyStateChange = function (){ var owner = this; this._httpReq.onreadystatechange = function(){ owner.callbackState.call(owner); } } /*************执行方法结束*****************/ } |
最近读者: