自封装的AJAX
2024-08-22 22:47:26
/*
*
*create by royal in 2019/1/23
*
*royalAjax 自封装ajax函数
*
*paramsObj JSON类型参数
*require params:
* type : string
* url : string
* data : JSON
* success : function
*
*注:get无参请求时,data参数可以不写
*
*/
(function(){
function royalAjax(paramsObj){
//处理参数
if(paramsObj.type.toLowerCase()=='get'){
var arr=[];
for(var pro in paramsObj.data){
var str =pro+'='+paramsObj.data[pro];
arr.push(str);
}
var canshuStr = arr.join('&');
//将参数添加到url后
paramsObj.url +=paramsObj.url.indexOf('?')== -1
?'?'+canshuStr
:'&'+canshuStr;
}else if(paramsObj.type.toLowerCase()=='post'){
var formdata =new FormData();
for(var pro in paramsObj.data){
formdata.append(pro,paramsObj.data[pro]);
}
}else{
console.log("无效的请求类型!!");
} //准备xhr对象
var xhr = new XMLHttpRequest();
xhr.onreadystatechange =function(){
if(xhr.readyState==4){
if(xhr.status==200){
//请求回来后调用success
paramsObj.success(JSON.parse(xhr.responseText));
}
}
} //准备发送
xhr.open(paramsObj.type, paramsObj.url, true);
//发送请求
if(paramsObj.type.toLowerCase()=='get'){
xhr.send(null);
}else if(paramsObj.type.toLowerCase()=='post'){
xhr.send(formdata);
}else{
console.log("请求类型错误!");
}
}
window.royalAjax= royalAjax;
})();
最新文章
- Redis 缓存过期(maxmemory) 配置/算法 详解
- JavaScript算法(归并排序与快速排序)
- 爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文
- ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
- 原生的on事件代理
- MongoDB与Mysql常用命令解释
- CSS中常用的字体单位:px、em、rem和%的区别
- 【CSS3】---阴影 box-shadow
- 自增运算a++和++b(1)
- 携程Java工程师——一道面向对象面试选择题(转)
- Dirichlet's Theorem on Arithmetic Progression
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
- Markdown格式
- 以Apache模块的方式编译安装php-5.4.27
- linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?
- JAVA面向对象-----多态
- Spring中关于AOP的实践之AspectJ方式实现通知
- 解决Navicat远程连接MySQL出现 10060 unknow error
- zabbix3.2监控mongodb
- mysql 开发基础系列3 日期数据类型