基于JavaScript封装的Ajax工具类
前段是件由于工作需要无奈编写了一个给予JavaScript封装的工具类,技术有限,误喷,感谢大家的支持。
1、以下是JavaScript 的 Ajax 工具类。
function createXMLHttpRequest(){
var req;
if(window.XMLHttpRequest){
//兼容非IE 并且兼容 IE7以上的浏览器
req = new XMLHttpRequest();
}else if(window.ActiveXObject){
//在 Internet Explorer 5.5 及其后版本中可用
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
//在 Internet Explorer 6 中可用
req = new ActiveXObject("Msxml2.XMLHTTP");
}
}
return req;
}
/*
参数介绍:
method:提交方式(get,post)
url:请求的路径
param:需要传递的参数
async:是否一步
type:返回值类型(xml,json,默认字符串)
fn200:是一个function 处理请求成功后的的事情
fn404:是一个function 处理请求失败报404错误
fn500:是一个function 处理请求失败报500错误
*/
function sendAjaxReq(method,url,param,async,type,fn200,fn404,fn500,loading){
var req = createXMLHttpRequest();
//2.定义处理响应
req.onreadystatechange = function (){
if(req.readyState == 4){
if(req.status == 200){
if(fn200){
var result;
if(null != type && 'xml' == type.toLowerCase()){
result = req.responseXML;
}else if(null != type && 'json' == type.toLowerCase()){
jsonStr = req.responseText;
if(document.all){
result = eval('(' + jsonStr + ')');
}else{
result = JSON.parse(jsonStr);
}
}else{
result = req.responseText;
}
fn200(result);
}
}else if(req.status == 404){
if(fn404){
fn404();
}
}else if(req.status == 500){
if(fn500){
fn500();
}
}
}else{
if(loading){
loading();
}
}
};
if('get' == method.toLowerCase()){
req.open(method, url + (param == null ? '' : '?'+param), async);
req.send(null);
}else if('post' == method.toLowerCase()){
//1.定义发送请求 请求的方式 请求的地址 是否异步;
req.open(method, url, async);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send(param);
}
}
2.调用方式:
function test(){
var url = "test?date=" + new Date();
sendAjaxReq("get",url,null,true,'json',function(result){
//此处是请求成功后回调方法,可做请求成功后的处理,result是后台返回的参数
},function (){
//此处可以跳转一个404页面
},function (){
//此处是处理500错误
},function (){
//处理其他问题
});
}
基于JavaScript封装的Ajax工具类的更多相关文章
- 基于JavaMail开发邮件发送器工具类
基于JavaMail开发邮件发送器工具类 在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活.找回密码等功能.本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用 ...
- Redis操作Hash工具类封装,Redis工具类封装
Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- 封装一个Ajax工具函数
/*封装一个ajax工具函数*/ window.$ = {}; /*通过$定义一个ajax函数*/ /* * 1. type string 请求的方式 默认是get * 2. url ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...
- springboot封装JsonUtil,CookieUtil工具类
springboot封装JsonUtil,CookieUtil工具类 yls 2019-9-23 JsonUtil public class JsonUtil { private static Obj ...
- JavaScript的My97Date日期工具类的使用
开发人员最喜欢的事情就是有工具然后拿来直接使用(. ~ .) 使用截图: 1.设置input标签 2.根据其DEMO文件,引入,进行事件处理 3.效果如图 4.效果如图 代码: <!DOCTYP ...
- JAVA调用操作javascript (JS)工具类
import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import ...
- Android开发之使用Handler封装下载图片工具类(源码分享)
假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...
随机推荐
- CodePlus 2017 12 月赛
这场比赛跟个zz一样 div1卡在了同余方程上 心态崩了去做div2 然后被T1搞崩了 T1: 大模拟 比较像配平方程式 思路: 但是未知物质每种元素系数不能≥10 且不能为空 (如CO2+?=CO2 ...
- PCB Windows Petya(永恒之蓝)勒索病毒补丁检测代码
公司内部电脑招受到新的勒索病毒Petya(永恒之蓝)攻击,直接导致受攻击的电脑系统崩贵无法启动,这次勒索病毒攻击影响范围之广,IT,人事,工程,生产,物控等部门都无一幸免,对整个公司运转产生了非常严重 ...
- 织梦dedecms标签大全总结
织梦dedecms标签大全总结,同时还建议多参考dede默认模板,织梦默认模板上的标签还是很有参考价值的. dedecms系统参数全局标签,在后台系统设置里可以看到这个参数 网站名称:{dede:gl ...
- [App Store Connect帮助]一、 App Store Connect 使用入门(3)首页概述
从首页可以访问 App Store Connect 的各个部分.您仅能访问每个部分中与您的用户职能相关联的功能. [提示]通过点按任何页面顶部的“App Store Connect”,您可以随时返回 ...
- [Swift通天遁地]五、高级扩展-(8)ImageView(图像视图)的各种扩展方法
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- eclipse下整合springboot和mybatis
1.新建maven项目 先新建一个maven项目,勾选上creat a simple project,填写groupid,artifactid 2.建立项目结构 3.添加依赖 <parent&g ...
- 对于Mobile模块化的概念认知(小白)
最近刚刚学习了Mobile的一些基础知识,把它整理一下方便自己的学习 那什么是Mobile呢? 自己的理解是将一个项目中共同的部分抽出来,这样就形成了Mobile模块. 为什么要使用Mobile呢? ...
- Codeforces 903G 巧妙的线段树
思路: 巧妙的线段树 想方法将网络流往数据结构方向转化 http://www.cnblogs.com/yyf0309/p/8724558.html //By SiriusRen #include &l ...
- 下载谷歌地图封锁IP解决办法
采用重新拨号,动态改变IP的方式.可以使用软件<易好用IP自动更换软件>
- Laravel5.1学习笔记20 EloquentORM 关系
Eloquent: Relationships Introduction Defining Relationships One To One One To Many Many To Many Has ...