前段是件由于工作需要无奈编写了一个给予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. IP V4 和 IP V6 初识

    IP V4    是互联网协议的第四版 地址长度为32位,4字节,用十进制表示 格式为:A.B.C.D 最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展 IP V6    是互联网协议的I ...

  2. 湖南集训Day1

    难度 不断网:☆☆☆ 断网:☆☆☆☆ /* 卡特兰数取模 由于数据范围小,直接做. 考试时断网.忘记卡特兰数公式,推错了只有5分. 数学公式要记别每次都现用现搜!!! */ #include<i ...

  3. PID204特种部队

    特种部队   题目描述 Description 某特种部队接到一个任务,需要潜入一个仓库.该部队士兵分为两路,第一路士兵已经在正面牵制住了敌人,第二路士兵正在悄悄地从后方秘密潜入敌人的仓库.当他们到达 ...

  4. 局部覆盖element-ui的默认样式

    最近项目中遇到的问题,只想在某个页面里面单独更改element-ui的样式,而不影响全局 有两种方法: 1.在需要更改的组件里新增一个style标签[重点:不要加scoped],然后直接获取class ...

  5. Netty(1) - 理解

    官网:netty.io ---------------------------------------------------------------------------------------- ...

  6. 把datagrid转换成gridview

    public gridview datagrid2gridview(datagrid dg) { gridview gv = new gridview(); foreach(var p in dg.c ...

  7. sql 列集合转换成逗号分隔的字符类型

    CREATE function [dbo].[getGroupPath](@groupId int) returns nvarchar(2000) as begin declare @path nva ...

  8. CSS基础知识(定位、浮动)

    12.浮动 特点:将当前元素脱离文档流    float: left 即左浮动  float: right 即右浮动 注:*父与子元素,设置子元素浮动不能超出父元素的范围 *多个元素均设置为浮动时,将 ...

  9. drupal 8——图片组(list)在前台的显示顺序在登录状态和非登录状态不同

    问题描述:该页面是通过view来输出的,然而,登录状态下其页面中的图片组输出顺序是乱序的,而非登录状态下则根据id值升序输出. 原因:在原view配置页面中,没有配置默认的排序字段 解决方案:在vie ...

  10. jQuery——节点操作

    创建节点 1.$():创建一个li标签 $("<li class='aaa'>我是li标签</li>") 2.html():创建一个li标签并同时添加到ul ...