封装过的Ajax工具类库
2012-10-31 22:18
218 查看
工具类:AjaxUtil.js
var AjaxUtil = {
// 基础选项
options : {
method : "get", // 默认提交的方法,get post
url : "", // 请求的路径 required
params : {}, // 请求的参数
type : 'text', // 返回的内容的类型,text,xml,json
callback : function() {
}// 回调函数 required
},
// 创建XMLHttpRequest对象
createRequest : 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;
},
// 设置基础选项
setOptions : 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];
paramsArray.push(pro + "=" + paramValue);
}
return paramsArray.join("&");
},
// 状态改变的处理
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请求
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);
}
}
};
一个简单的示例:
function findUser() {
var userid = $("userid").value;
if (userid) {
AjaxUtil.request({
url:"servlet/UserJsonServlet",
params:{id:userid},
type:'json',
callback:process
});
}
}
function process(json){
if(json){
$("id").innerHTML = json.id;
$("username").innerHTML = json.username;
$("age").innerHTML = json.age;
}
else{
$("msg").innerHTML = "用户不存在";
$("id").innerHTML = "";
$("username").innerHTML = "";
$("age").innerHTML = "";
}
}
function $(id) {
return document.getElementById(id);
}
var AjaxUtil = {
// 基础选项
options : {
method : "get", // 默认提交的方法,get post
url : "", // 请求的路径 required
params : {}, // 请求的参数
type : 'text', // 返回的内容的类型,text,xml,json
callback : function() {
}// 回调函数 required
},
// 创建XMLHttpRequest对象
createRequest : 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;
},
// 设置基础选项
setOptions : 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];
paramsArray.push(pro + "=" + paramValue);
}
return paramsArray.join("&");
},
// 状态改变的处理
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请求
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);
}
}
};
一个简单的示例:
function findUser() {
var userid = $("userid").value;
if (userid) {
AjaxUtil.request({
url:"servlet/UserJsonServlet",
params:{id:userid},
type:'json',
callback:process
});
}
}
function process(json){
if(json){
$("id").innerHTML = json.id;
$("username").innerHTML = json.username;
$("age").innerHTML = json.age;
}
else{
$("msg").innerHTML = "用户不存在";
$("id").innerHTML = "";
$("username").innerHTML = "";
$("age").innerHTML = "";
}
}
function $(id) {
return document.getElementById(id);
}
相关文章推荐
- 封装的ajax工具函数
- 自己做工具--用原生js封装一个AJAX插件
- 封装一个Ajax工具函数
- JDBC-DBUtils开源工具类库(简化查询封装数据过程)
- 9、ABPZero系列教程之拼多多卖家工具 拼团提醒类库封装
- 利用JS面向对象+模块化封装集AJAX请求、基本数据校验、URL参数截取等功能于一身的通用工具模块
- jquery中ajax封装原理/封装jquery的ajax工具函数
- Ajax工具函数封装
- 统一的Ajax提交封装,一劳永逸好工具(带跨域处理)
- JavaScript封装的常用工具类库bee.js用法详解【经典类库】
- 实用前端JS工具类(验证,AJAX请求封装,分页插件等)真实项目使用
- 利用JS面向对象+模块化封装集AJAX请求、基本数据校验、URL参数截取等功能于一身的通用工具模块
- 封装工具大全与如何系统减肥
- 简单的string 类库的封装
- 封装好的一个的Toast工具类(可以直接调用)
- 软件开发工具推荐:ZeroTurnaround ZIP 类库
- js将form表单提交数据封装为ajax提交
- Ajax控件和类库简析
- sendAjax.小程序登录封装
- ajax 小小封装