程序ajax请求公共组件:app-jquery-http.js
// --------网络操作--------------------
$.HTTP = {
getUrlParam : function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null)
return unescape(r[2]);
return null;
},
// 设置url参数值,ref参数名,value新的参数值
setUrlParam:function (url,ref, value)
{
var str = "";
if (url.indexOf('?') != -1)
str = url.substr(url.indexOf('?') + 1);
else
return url + "?" + ref + "=" + value;
var returnurl = "";
var setparam = "";
var arr;
var modify = "0";
if (str.indexOf('&') != -1) {
arr = str.split('&');
for (i in arr) {
if (arr[i].split('=')[0] == ref) {
setparam = value;
modify = "1";
}
else {
setparam = arr[i].split('=')[1];
}
returnurl = returnurl + arr[i].split('=')[0] + "=" + setparam + "&";
}
returnurl = returnurl.substr(0, returnurl.length - 1);
if (modify == "0")
if (returnurl == str)
returnurl = returnurl + "&" + ref + "=" + value;
}
else {
if (str.indexOf('=') != -1) {
arr = str.split('=');
if (arr[0] == ref) {
setparam = value;
modify = "1";
}
else {
setparam = arr[1];
}
returnurl = arr[0] + "=" + setparam;
if (modify == "0")
if (returnurl == str)
returnurl = returnurl + "&" + ref + "=" + value;
}
else
returnurl = ref + "=" + value;
}
return url.substr(0, url.indexOf('?')) + "?" + returnurl;
}, // 删除参数值
deleteUrlParam:function (url,ref) {
var str = "";
if (url.indexOf('?') != -1) {
str = url.substr(url.indexOf('?') + 1);
}
else {
return url;
}
var arr = "";
var returnurl = "";
var setparam = "";
if (str.indexOf('&') != -1) {
arr = str.split('&');
for (i in arr) {
if (arr[i].split('=')[0] != ref) {
returnurl = returnurl + arr[i].split('=')[0] + "=" + arr[i].split('=')[1] + "&";
}
}
return url.substr(0, url.indexOf('?')) + "?" + returnurl.substr(0, returnurl.length - 1);
}
else {
arr = str.split('=');
if (arr[0] == ref) {
return url.substr(0, url.indexOf('?'));
}
else {
return url;
}
}
},
/**
*
* @param opt
* opt.url,postdata, success, failure, error
*/
obj : function(opt) { var formData; if (opt.postType) {
switch (opt.postType) {
case "multipart":
formData = new FormData($(opt.formId)[0]);
break;
case "form":
if(opt.formId){
formData=$(opt.formId).serialize();
}else{
formData=$.param(opt.ajaxData);
}
if(opt.extData){
formData += "&"+$.param(opt.extData);
}
break;
case "json":
formData = JSON.stringify(opt.ajaxData);
break;
default:
return;
}
} else {
formData = opt.ajaxData;
} var sopt = {
type : opt.type == undefined ? "post" : opt.type,
async : false,
url : opt.url,
data : formData,
dataType : "json",
success : function(json) {
if (json.stat == 1) {
if (opt.success != undefined)
opt.success(json.data);
} else {
if (opt.failure != undefined)
opt.failure(json);
else if (json.code != undefined) {
$.HTTP.show_code_err(json);
} else {
console.log("success不等于true 【url: " + opt.url + "】");
if (json.errorMessages != null
&& json.errorMessages.length > 0) {
console.error("错误", json.errorMessages[0]);
}
} } },
error : function(XMLHttpRequest, textStatus, errorThrown) {
var info = "XMLHttpRequest:" + JSON.stringify(XMLHttpRequest)
+ " ;textStatus:" + textStatus + "; errorThrown:"
+ JSON.stringify(errorThrown) + "; 【" + opt.url + "】";
console.log(info);
if (opt.error != undefined)
opt.error(XMLHttpRequest, textStatus, errorThrown);
else {
console.error("请求错误", "系统发生请求错误,请联系管理员解决。");
}
}
};
if (opt.postType) {
switch (opt.postType) {
case "multipart":
sopt.async = false;
sopt.cache = false;
sopt.contentType = false;
sopt.processData = false;
break;
case "form":
sopt.contentType = 'application/x-www-form-urlencoded';
break;
case "json":
sopt.contentType = 'application/json';
sopt.dataType = "json";
break;
default:
return;
}
}
$.ajax($.extend(sopt, opt.ajaxOption));
},
list : function(opt) { var formData; if (opt.postType) {
switch (opt.postType) {
case "multipart":
formData = new FormData($(opt.formId)[0]);
break;
case "form":
if(opt.formId){
formData=$(opt.formId).serialize();
}else{
formData=$.param(opt.ajaxData);
}
if(opt.extData){
formData += "&"+$.param(opt.extData);
}
break;
case "json":
formData =JSON.stringify(opt.ajaxData);
break;
default:
return;
}
} else {
formData = opt.ajaxData;
} var sopt = {
type : opt.type == undefined ? "get" : opt.type,
async : false,
url : opt.url,
data : formData,
dataType : "json",
success : function(json) {
if (json.stat == 1) {
if (opt.success != undefined)
opt.success(json.list, json.pageInfo);
} else {
if (opt.failure != undefined)
opt.failure(json);
else if (json.code != undefined) {
$.HTTP.show_code_err(json);
} else {
console.log("success不等于true 【url: " + opt.url + "】");
if (json.errorMessages != null
&& json.errorMessages.length > 0) {
console.error("错误", json.errorMessages[0]);
}
}
} },
error : function(XMLHttpRequest, textStatus, errorThrown) {
var info = "XMLHttpRequest:" + JSON.stringify(XMLHttpRequest)
+ " ;textStatus:" + textStatus + "; errorThrown:"
+ JSON.stringify(errorThrown) + "; 【" + opt.url + "】";
console.log(info);
if (opt.error != undefined)
opt.error(XMLHttpRequest, textStatus, errorThrown);
else {
console.error("请求错误", "系统发生请求错误,请联系管理员解决。");
}
}
}; if (opt.postType) {
switch (opt.postType) {
case "multipart":
sopt.async = false;
sopt.cache = false;
sopt.contentType = false;
sopt.processData = false;
break;
case "form":
sopt.contentType = 'application/x-www-form-urlencoded';
break;
case "json":
sopt.contentType = 'application/json';
sopt.dataType = "json";
break;
default:
return;
}
} $.ajax($.extend(sopt, opt.ajaxOption));
},
show_code_err : function(json) {
if (json.code == 1403) {
showLogin();
return;
} else if (json.errorMessages != undefined
&& json.errorMessages != null && json.errorMessages.length > 0) {
alert(json.errorMessages[0]);
console.error("错误", json.errorMessages[0]);
} }
}
程序ajax请求公共组件:app-jquery-http.js的更多相关文章
- 程序ajax请求公共组件-- app-jquery-http.js
$.HTTP = { getUrlParam : function (name) { var reg = new RegExp ("(^|&)" + name + &quo ...
- 程序ajax请求公共组件app-jquery-http.js中url参数部分的项目应用
结合微信登录以及微信支付的案例:= =||| (案例比较奇葩复杂) 简述项目流程: 1.获取用于公众号支付的openid(公众平台):在微信内置浏览器中打开网页链接,刚进入页面就通过微信公众平台获取该 ...
- 详解Ajax请求(三)——jQuery对Ajax的实现及serialize()函数对于表单域控件参数提交的使用技巧
原生的Ajax对于异步请求的实现并不好用,特别是不同的浏览器对于Ajax的实现并不完全相同,这就意味着你使用原生的Ajax做异步请求要兼顾浏览器的兼容性问题,对于java程序员来讲这是比较头疼的事情, ...
- Ajax请求(二)--JQuery的Ajax请求方法
JQuery库的Ajax请求的几种方法: 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. 参数含义: url (String ...
- ajax表单提交插件jquery.form.js的运用
该插件提交的数据包含上传的图片. 1.先导入jquery.form.js 2.form表单的元素: <form id="form2_form" method="po ...
- Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)
1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...
- Angular和jQuery的ajax请求的差别
近期项目中使用angular,结果发现后台没法获取參数,所以,略微研究了一下两者在发送ajax时的差别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释con ...
- Struts2处理(jQuery)Ajax请求
1. Ajax Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)时一种创建交互式网页应用的网页开发技术,它并不是一项新的技术,其产生 ...
- jQuery实现的分页功能,包括ajax请求,后台数据,有完整demo
一:需求分析 1)需要首页,末页功能 2)有点击查看上一页,下一页功能 3)页码到当前可视页码最后一页刷新页面 二:功能实现思路 也是分为三部分处理 1)点击首页,末页直接显示第一页或者最后一页内容, ...
随机推荐
- 【转】configure/make/make install的使用说明
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...
- spring @Component
使用 @Component <context:component-scan base-package="dao" /> 虽 然我们可以通过@Autowired或@R ...
- Linux试题及答案
一. 单选题: 1.添加一条静态路由,使到网络196.199.3通过eth2接口出去,用: A. route add -net 196.199.3.0 B. route add -net 196.19 ...
- 会话管理---Cookie与Session
会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 保存会话数据的两种技术:Cookie,Session Cookie是客户端技术, ...
- Sticks<DFS>
题意: 给n个木棍,这些木棍是由m个长度均为L的木棍切割而来,求L的最小值. 思路: DFS+剪枝. 剪枝: 1:L的取值范围在n(max)和n(sum)之间,逐个枚举.sum%L!=0则L不能用. ...
- php 生成 验证码的例子
/** +---------------------------------------------------------- * 生成随机字符串 CuPlayer.com 酷播 +-------- ...
- XListview的下拉刷新、上拉加载、用Pull解析XML
做之前需要导入XListview的文件,此是用第三方的xListview实现的,东西没写全.此是在Fragment中实现的 //--------------XListView的布局---------- ...
- HDU 1686 Oulipo(KMP+计算匹配成功次数)
一开始总是超时,后来发现还是方法没找对,这个跟普通KMP不太一样的就是,KMP匹配成功的时候会完全跳过已经匹配成功的匹配段,至少我掌握的是.那么如何避免这样的问题呢,举个栗子啊 原串为ABABA,模式 ...
- #ifndef 和 #endif
文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都include了同一个头文件.而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了, ...
- JSP标准标签库(JSTL)--XML标签库 x
³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理. XML标 ...