Ajax封装技术
2016-07-21 19:11
375 查看
Ajax封装技术
/**
*
* @param method 表示提交的方式
* @param url 表示提交的地址
* @param params 表示提交的参数 key=val&key1=val1&.....
* @param handler200 处理成功
* @param handler404 处理资源未找到
* @param handler500 处理服务器错误
* @param loading 加载效果
*
* ajaxutil("get","ajax?age=12","username=lisi&password=123123")
*
*
*
*/
function ajaxutil(method,url,params,handler200,handler404,handler500,loading){
method = method || "get";
url = url || "";
//创建一个请求对象
var request;
//为了处理浏览器的差异性问题
//第一个更通用 判断window对象中是否含有 XMLHttpRequest对象 如果有 则直接new出来使用
//如果没有 则表示是ie浏览器 要采用特殊的方式进行创建
if(window.XMLHttpRequest){
//创建对象
request = new XMLHttpRequest();
}else if(window.ActiveXObject){
request = new ActiveXObject("Msxml2.XMLHTTP");
}
//监听
request.onreadystatechange =function(){
if(request.readyState == 4){
//处理成功请求
if(request.status == 200){
if(typeof handler200 == 'function'){
handler200(request.responseText);
}
}else if(request.status == 404){
if(typeof handler404 == 'function'){
handler404();
}
}
else if(request.status == 500){
if(typeof handler500 == 'function'){
handler500(request.responseText);
}
}
}else{
if(typeof loading == 'function'){
loading();
}
}
};
//get方式提交
if(method.toLowerCase() == "get"){
//先判断参数有没有 如果有 才处理地址 如果没有 不管
if(params){
url = url+((url.indexOf('?')==-1)?"?":"&")+params;
}
request.open(method, url);
request.send(null);
}else if(method.toLowerCase() == "post"){
request.open(method, url);
//设置编码方式
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(params||null);
}
}
/**
*
* @param method 表示提交的方式
* @param url 表示提交的地址
* @param params 表示提交的参数 key=val&key1=val1&.....
* @param handler200 处理成功
* @param handler404 处理资源未找到
* @param handler500 处理服务器错误
* @param loading 加载效果
*
* ajaxutil("get","ajax?age=12","username=lisi&password=123123")
*
*
*
*/
function ajaxutil(method,url,params,handler200,handler404,handler500,loading){
method = method || "get";
url = url || "";
//创建一个请求对象
var request;
//为了处理浏览器的差异性问题
//第一个更通用 判断window对象中是否含有 XMLHttpRequest对象 如果有 则直接new出来使用
//如果没有 则表示是ie浏览器 要采用特殊的方式进行创建
if(window.XMLHttpRequest){
//创建对象
request = new XMLHttpRequest();
}else if(window.ActiveXObject){
request = new ActiveXObject("Msxml2.XMLHTTP");
}
//监听
request.onreadystatechange =function(){
if(request.readyState == 4){
//处理成功请求
if(request.status == 200){
if(typeof handler200 == 'function'){
handler200(request.responseText);
}
}else if(request.status == 404){
if(typeof handler404 == 'function'){
handler404();
}
}
else if(request.status == 500){
if(typeof handler500 == 'function'){
handler500(request.responseText);
}
}
}else{
if(typeof loading == 'function'){
loading();
}
}
};
//get方式提交
if(method.toLowerCase() == "get"){
//先判断参数有没有 如果有 才处理地址 如果没有 不管
if(params){
url = url+((url.indexOf('?')==-1)?"?":"&")+params;
}
request.open(method, url);
request.send(null);
}else if(method.toLowerCase() == "post"){
request.open(method, url);
//设置编码方式
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(params||null);
}
}
相关文章推荐
- 这里被称为「中国互联网的黄埔军校」,走出百度总裁、阿里云之父
- Java_IO_实例总结(二)
- windows使用asmcmd报'perl.exe' 不是内部或外部命令
- 加载图片导致ul不能自动滚动到底的问题
- opencv-SURF特征描述
- Java并发编程:synchronized
- Tomcat7配置数据源
- 1008. Elevator (20)-PAT甲级真题
- 统计基础
- (转)教你实现Winform窗体的四边阴影效果
- UVA - 10719 Quotient Polynomial
- 系列文章之三 用cocos2d-js和pomelo开发MMORPG传奇手游的项目结构
- UVA - 11044 Searching for Nessy
- UVA - 10790 How Many Points of Intersection?
- Origin Only IO
- Java 多线程:synchronized 关键字 3ff0 用法(修饰类,方法,静态方法,代码块)
- SQL SERVER 中的行列转换小结
- windows驱动开发学习笔记一双向链表LIST_ENTRY
- HDU - 4544 湫湫系列故事——消灭兔子 贪心+优先队列
- CodeForces 455A Boredom (dp)