工作笔记-javascript-网络层封装
/**
* @Author Mona
* @Date 2016-12-08
* @description 网络层封装
*/ /**
* 封装基本请求方式
*/
window.BaseRequest = (function () {
//发送请求的所有方式
var request = {}; /**
* 基本请求
*/
function baseRequestFunc(type,param,url,async,contentType,dataType,processData,opt_suc,paramType,opt_error) {
var cur_url = contextPath+url;
var now_url = '';
//当把参数作为路由的一部分时此时的参数为字符串;
(paramType&¶mType=='url')?(now_url=cur_url+'/'+param+'.json'):(now_url=cur_url+'.json');
//这个里面是最基本的ajax
$.ajax({
type:type,
data:param,
url:now_url,
async:async,//默认为true
contentType:contentType,//默认为application/x-www-form-urlencoded
dataType:dataType,//默认为预期服务器返回的数据类型
processData:processData,//默认为true
success:function(data,textStatus,jqXHR){
if($.isFunction(opt_suc)){
opt_suc(data,textStatus,jqXHR);
}
},
error:function(jqXHR,textStatus,errorThrown){
renderErrorMsg(jqXHR,textStatus,errorThrown);
if($.isFunction()){
opt_error();
}
}
}) } /**
* get异步请求方式
*/
request.get = function (param,url,callback,paramType) {
baseRequestFunc('get',param,url,true,'application/x-www-form-urlencoded','json',true,callback,paramType);
} /**
* get同步请求方式
* param {param} object
*/
request.sync_get = function (param,url,callback,paramType) {
baseRequestFunc('get',param,url,false,'application/x-www-form-urlencoded','json',true,callback,paramType);
} /**
* post异步请求方式
* param {param} object
*/
request.post = function (param,url,callback,paramType) {
baseRequestFunc('post',param,url,true,'application/json','json',true,callback,paramType);
} /**
* post的requestBean请求方式 这种请求方式适用于字段较多,且需要formdata方式上传文件
* param {param} object {param.files} array {param.fileNames} array {param.inputData} object
*/
request.post_multipart_form_data = function (param,url,callback,paramType,formData,opt_error) {
var form_data = new FormData();
if(param.files && param.files.length>0){
$.each(param.files,function(k,info_name){
form_data.append('files',document.getElementById(info_name).files[0])
})
} if(param.fileNames && param.fileNames.length>0){
$.each(param.fileNames,function(i,item){
form_data.append('fileNames',item);
})
}
if(formData && formData=='formdata'){
$.each(param.inputData,function(i,item){
form_data.append(i,item);
})
}else{
form_data.append('requestBean', new Blob([JSON.stringify(param.inputData)], {
type: "application/json"
}));
}
baseRequestFunc('post',form_data,url,true,false,'json',false,callback,paramType,opt_error);
} /**
* post的formdata请求方式
* param {param} object
*/
request.post_form_data = function(param,url,callback,paramType,opt_error){
var form_data = new FormData();
$.each(param,function(i,item){
form_data.append(i,item);
})
baseRequestFunc('post',form_data,url,true,false,'json',false,callback,opt_error);
} /**
* post的JSON.stringify(param)请求方式
* param {param} object
*/
request.post_string_data = function(param,url,callback,paramType){
var cur_data = JSON.stringify(param);
baseRequestFunc('post',cur_data,url,true,'application/json','json',false,callback);
}
return request;
})();
工作笔记-javascript-网络层封装的更多相关文章
- javascript - 工作笔记 (事件四)
在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345 yx.bind(item, "click&quo ...
- 工作笔记5.JAVA图片验证码
本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServl ...
- 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素
这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找. html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...
- 《工作笔记:移动web页面前端开发总结》
工作笔记:移动web页面前端开发总结 移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (I ...
- 笔记-JavaScript与HTML DOM
引用源:https://www.cnblogs.com/propheterLiu/p/5966791.html 笔记-JavaScript和HTML DOM 区别: javascript JavaSc ...
- JavaScript 模块封装
JavaScript 模块封装 前言介绍 在最早的时候JavaScript这门语言其实是并没有模块这一概念,但是随着时间的推移与技术的发展将一些复用性较强的代码封装成模块变成了必要的趋势. 在这篇文章 ...
- 2016/11/17 周四 <javascript的封装简单示例>
这是一个简单的javascript代码封装的示例以及封装后的调用方法: var ticker={ n:0, add:function() { this.n++; }, show:function() ...
- RX编程笔记——JavaScript 获取地理位置
RX编程笔记——JavaScript 获取地理位置 2016-07-05
- 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境
上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...
随机推荐
- Virtual Box下安装Oracle Linux 6.3
Oracle Linux 6.3已经公布快2年了,其功能有非常大的提升,增强了KVM,文件卷的在线resizing,LVM支持 raid4, 5, 6.支持很多其它的虚拟CPU数以及更大内存,详细能够 ...
- 深入分析jquery解析json数据
我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. JSON数据如下,是一个嵌套JSON: {"comments":[{& ...
- js获取表单数据
var modelObj = {}; var modelFieldsArray = $('#AddMusicCategory').serializeArray(); $.each(modelField ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- videoview 播放视频
-videoVIew 继承SurfaceView 使用android的VideoView来播放一个视频,步骤是: 1,在xml中创建一个videoView, 2,在java中导入,然后创建一个Medi ...
- spring could Windows打包构建docker镜像到linux
工程模拟参考:http://blog.csdn.net/forezp/article/details/70198649 一.工程结构 二.Pom配置 <build> <plugins ...
- 160303、js加密跟后台加密对应
md5.js var hexcase = 0; var b64pad = ""; var chrsz = 8; function hex_md5(s){ return binl2h ...
- json序列化懒加载问题
如果框架使用了json序列化对象,当配置了hibernate懒加载时,可能会抛出异常,或者出现N+1的问题,或者出现无限循环的问题.网上很多解决方案, 基本是这些:@JsonIgnore忽略可能出问题 ...
- Oracle的启动与关闭
启动数据库的前提条件: 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH) 能密码文件认证或OS认证(确保能登入sys) 有正确的参数文件(启动数据库需要查找参数文件,默认 ...
- SaaS成熟度模型分级:
SaaS成熟度模型分级: 根据SaaS应用是否具有可配置性,高性能,可伸缩性的特性,SaaS成熟度模型被分成四级.每一级都比前一级增加三中特性中的一种. 可配置 高性能 可伸缩 Level1 N ...