Ajax框架整合
来源:互联网 发布:全站仪数据采集 编辑:程序博客网 时间:2024/06/05 16:08
我们知道,每次根据不同接口,写不同的Ajax是一件比较麻烦的事儿,但是又不逃避他们,那么该肿么办呢,下面给大家介绍一种整合框架,可以根据与不同接口去创建不同的Ajax
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><script> function ajax(option){ var setting = { url:'', method:'', data:'', async:true, success:null, error:null, timeout:10000, hrader:null, dataType:'json' }; //循环遍历传参 for(var p in option){ setting[p] = option[p] } //url后的数据处理 var requestdata = ''; if(typeof setting.data == 'object'){ var arr = []; for(var p in setting.data){ arr.push(p + '=' + setting.data[p]); } requestdata = arr.join('&'); }else{ requestdata = setCharset.data; } //异步处理 var xhr; if(XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject(); } //get if(setting.method.toLocaleLowerCase() == 'get'){ xhr.open(setting.method, setting.url +'?'+ requestdata, setting.async); addHeader(); xhr.send(); }else{//post xhr.open(setting.method, setting.url, setting.async); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); addHeader(); xhr.send(requestdata); } //是否超时 xhr.timeout = setting.timeout; xhr.ontimeout = function(){ typeof setting.error == 'function' && setting.error('timer'); }; //报错 xhr.onerror = function(){ typeof setting.error == 'function' && setting.error(xhr.response); }; //是否异步操作 if(setting.async){ xhr.onreadystatechange = function(){ doResult(); } }else{ doResult(); } //处理请求结果 function doResult(){ if(xhr.readyState == 4 && xhr.status == 200 && typeof setting.success == 'function'); { switch (setting.dataType){ case 'json': setting.success(JSON.parse(xhr.response)); break; default : setting.success(xhr.response); } } } //添加请求头 function addHeader(){ if(typeof setting.hrader == 'object'){ for(var p in setting.header){ xhr.setRequestHeader(p, setting.header[p]); } } } } ajax({ url:'http://apis.baidu.com/tianyiweather/basicforecast/weatherapi', method:'get', data:'area=101010100', dataType:'json', header:{'apikey':'1b9e66408b7e243dcc6c3e10ef6e94d5'}, success:function(data){ console.log(data); }, error:function(data){ console.log(data); } })</script></body></html>
0 0
- Ajax框架整合
- 框架整合学习---struts2+ajax示范
- 整合Ajax框架Buffalo2.0与Spring2.0
- AJAX Struts 框架整合例子请求参数作为XML传送(-)
- 框架整合
- 框架整合
- 框架整合
- 框架整合
- 框架整合
- 框架整合
- AJAX Struts 框架整合例子请求参数作为XML传送(二)
- 运用DWR框架实现AJAX并与Spring与struts以及hibernate中的整合
- SSH框架整合jquery-ajax后,8次请求后网页假死,必须重启tomcat
- spring、struct、hibernate三大框架整合--扩展一:添加ajax的支持
- SSH三大框架的整合+利用Ajax实现无刷新分页
- SSH(Spring+Struts+Hibernate)框架学习之ajax技术和struts的整合
- 框架学习之struts2-05文件上传、下载、ajax整合json
- Ajax框架之DWR学习(DWR 和Spring整合)-yellowcong
- 通俗理解卷积神经网络
- Python入门:socket连续接收客户端数据
- eclipse编码设置
- Linux-文件备份shell
- HDU 2602 Bone Collector【01DP(二)】
- Ajax框架整合
- JS字符串,数组操作(持续更新)
- c语言项目 注释转换 (c———c++)
- 存储——硬盘结构
- 关于(i++)与(++i)在计算中的讨论
- [VS2010]_[Windows]_[Debug模式下LoadLibrary错误87]
- CF367 E - Working routine
- Android N/Android 7.0新特性(图文详解Android 7.0新功能)
- 109. Convert Sorted List to Binary Search Tree