此贴记录所有我自己封装的一些项目中常用的工具方法,欢迎各种指导+补充。互相学习啦!
Ajax请求:
xAjax.request = function(options){
if(!options || typeof options != "object"){
return false;
}
//请求类型,不传,默认get
var type = options.type || "get";
//请求地址
var url = options.url || location.pathname;
//异步or同步
var async = (options.async === false) ?false:true;
//请求内容的格式
var contentType = options.contentType || "type/html";
//数据
var data = options.data || {};
var dataStr = "";
for(var key in data){
dataStr += key+"="+data[key]+"&";
}
//将最后一个&截取掉
dataStr = dataStr && dataStr.slice(0,-1);
//ajax
var xhr = new XMLHttpRequest();
xhr.open(type,(type=="get"?url+"?"+dataStr:url),async);
//请求头
if(type == 'post'){
if(contentType == "json"){
xhr.setRequestHeader('Content-Type','application/json');
}else{
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
}
}
xhr.setRequestHeader('Client-Type','I');
//请求主体
xhr.send(type=="get"?null:contentType=="json"?JSON.stringify(data):dataStr);
//监听响应状态的改变
xhr.onreadystatechange = function(){
var result = "";
var contentType = xhr.getResponseheader('Content-Type');
if(xhr.readyState ==4 && (xhr.status == 200 || xhr.status == 201)){
//如果服务器返回的是xml
if(contentType.indexOf("xml")>-1){
result = xhr.responseXML;
}
//如果服务器返回的是json
else if(contentType.indexOf("json")>-1){
result = JSON.parse(xhr.responseText);
}else{
result = xhr.responseText;
}
//成功回调
options.success && options.success(result);
}
//请求不成功,也需要响应完成才作为一个错误的请求
else if(xhr.readyState == 4){
//如果服务器返回的是xml
if(contentType.indexOf("xml")>-1){
result = xhr.responseXML;
}
//如果服务器返回的是json
else if(contentType.indexOf("json")>-1){
result = JSON.parse(xhr.responseText);
}else{
result = xhr.responseText;
}
//error回调
options.error&& options.error(result);
if(xhr.status == 401 || (xhr.status == 403){
options.authorize && options.authorize();
}
}
}
}
xAjax.post = function(options){
options.type = "post";
xAjax.request(options);
}
xAjax.get = function(options){
options.type = "get";
xAjax.request(options);
}
调用的话就这样写;我觉得还挺方便的
xAjax.post({
url:"xxxx",
data:{"name":xj},
success:function(result){
//请求成功的操作
},
error:function(error){
//请求失败的操作
}
});
判断是否为空:
xCheckEmpty = function(obj){
if(obj == null || obj == undefined || obj == ""){
return true;
}
return false;
}
xCheckNotEmpty = function(obj){
if(xCheckEmpty(obj)){
return false;
}
return true;
}
还没有整理完,待补充。
网友评论