前段是件由于工作需要无奈编写了一个给予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工具类的更多相关文章

  1. 基于JavaMail开发邮件发送器工具类

    基于JavaMail开发邮件发送器工具类 在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活.找回密码等功能.本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用 ...

  2. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  3. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  4. 封装一个Ajax工具函数

    /*封装一个ajax工具函数*/ window.$ = {}; /*通过$定义一个ajax函数*/ /* * 1. type   string   请求的方式  默认是get * 2. url     ...

  5. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫

    前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...

  6. springboot封装JsonUtil,CookieUtil工具类

    springboot封装JsonUtil,CookieUtil工具类 yls 2019-9-23 JsonUtil public class JsonUtil { private static Obj ...

  7. JavaScript的My97Date日期工具类的使用

    开发人员最喜欢的事情就是有工具然后拿来直接使用(. ~ .) 使用截图: 1.设置input标签 2.根据其DEMO文件,引入,进行事件处理 3.效果如图 4.效果如图 代码: <!DOCTYP ...

  8. JAVA调用操作javascript (JS)工具类

    import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import ...

  9. Android开发之使用Handler封装下载图片工具类(源码分享)

    假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...

随机推荐

  1. codeforces 920 EFG 题解合集 ( Educational Codeforces Round 37 )

    E. Connected Components? time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  2. 51. ExtJs4之Ext.util.JSON编码和解码JSON对象

    转自:https://blog.csdn.net/iteye_9439/article/details/82518158 1.decode() 该方法用于将符合JSON格式的String进行解码成为一 ...

  3. CentOS Linux VPS桌面环境一键安装包

  4. Ruby   离奇方法

    send https://ref.xaio.jp/ruby/classes/object/send find https://ref.xaio.jp/ruby/classes/enumerable/f ...

  5. POJ3070Fibonacci

    矩阵乘法裸题 求快速幂 #include<iostream> #include<cstdio> #define ll long long #define Mod 10000 u ...

  6. Android 使用 Application 简单介绍

    Application 配置全局Context 第一步.写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里面实例化Application ...

  7. Offer收割_5

    训练 投入 欲望.  ---贾森博尔特 第一题:二分枚举答案,check时候模拟一下即可. 时间复杂度: O(n*logn). 第二题: 描述 小Hi在虚拟世界中有一只小宠物小P.小P有K种属性,每种 ...

  8. 笔记《精通css》第5章 链接应用样式

    第5章    链接应用样式 1.链接伪类选择器 a : link{    }   (寻找没有被访问过的链接) a : visied{    }(寻找被访问过的链接) 动态伪类选择器 a : hover ...

  9. python 根据数组生成图片

    array = np.asarray(allBigPng, dtype=np.uint8)image = Image.fromarray(array, 'RGBA') image.save(outpu ...

  10. Android开发初体验

    本文通过开发一个应用来学习Android基本概念及构成应用的UI组件. 开发的应用名叫GeoQuiz,它能给出一道道地理知识问题.用户点击true或false按钮回答问题,应用即时做出反馈 第一步请先 ...