(function(window){
function AjaxTool(){
}
AjaxTool.ajaxRequest = function(param,successFunc,failFunc){
var requestType = param['requestType'];
var url = param['url'];
var paramObj = param['paramObj'];
var timeout = param['timeout'];
//创建一个请求
var xhr;
if(requestType.toLowerCase() === 'get'){
//拿到本地需要传送的数据
var codeURL = encodeURI(url + '?' + getStrWithObject(paramObj));
xhr.open('get',codeURL,true);
//发送请求(拨出电话)
xhr.send();
}else if(requestType === 'post'){
//拿到本地需要传送的数据
var codeParam = encodeURI(getStrWithObject(paramObj));
xhr.open('post',url,true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(codeParam);
}
//监听服务器响应(等待电话响起)
xhr.onreadystatechange = function(){
//一旦服务器响应就会执行这个函数
//处理响应数据
if(xhr.readyState == 4){
//意味服务器有响应,但是不代表响应正确
//判断服务器给的数据是否正确
var status = xhr.status;
if(status >= 200 && status <=300 || status ==304){
//真正处理数据的操作在这里执行
successFunc(xhr);
//额外的清除取消请求的定时
clearTimeout(timer);
} else{
failedFunc();
}
}
}
//等到多少秒之后取消 ajax 请求
var timer;
if(timeout > 0){
timer = setTimeout(function(){
xhr.abort();
},timeout)
}
}
window.AjaxTool = AjaxTool;
function getRandomStr(){
return Math.random() + (new Date()).getTime();
}
function getStrWithObject(paramObj){
var resultArray = [];
for(var key in paramObj){
var str = key + '=' + paramObj[key];
resultArray.push(str);
}
resultArray.push('random=' + getRandomStr());
return resultArray.join('&');
}
})(window)
ajax 请求数据函数封装
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- //封装JSONP function creatScriptTag(scrSring){ var script =...
- 由于ajax的异步问题,全局变量bookData输出的时候不一定已经执行完成ajax,所以存在获取不到请求数据的情...
- 使用第三方类库FMDB封装数据请求类,实现数据分页请求,上拉刷新下拉加载#### 实现功能:添加问题和答案,删除问...
- 一直在用jQuery方法来写ajax请求,用的多了,不免对这其中是怎么实现的产生了兴趣,于是乎,小弟闲来无聊研究了...
- 在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳 大家在系统...