基于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 ...
随机推荐
- git实验室
git clone一个项目 jiqing@jiqing-System-Product-Name:/home/wwwroot/default$ sudo git clone http://106.14. ...
- E20170623-ts
filter n. 滤波器; 滤光器; 滤色镜; [化] 过滤器; mass n. 大量,大多; 块,堆,团; [物理学] 质量; 弥撒曲; assignment n. 分给,分配; 任务, ...
- MySQL数据库笔记总结
MySQL数据库总结 一.数据库简介 1. 数据 所谓数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的.它不仅仅指狭义上的数字,而是有多种表现形式:字母.文字.文本. ...
- idea 内测设置
找到安装目录/bin/idea64.exe.vmoptions文件 下面是默认配置 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseC ...
- $P2121 拆地毯$
\(problem\) \(kruskal\)的模板题. #ifdef Dubug #endif #include <bits/stdc++.h> using namespace std; ...
- 《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly
声明类的属性和方法时可以设置使用访问控制符,访问控制符设置类的属性和方法能不能在类的外部被访问 1. 默认为 public,使用public定义的属性和方法在类的内部和外部都可以访问 2. priva ...
- spring boot打包文件后,报错\No such file or directory
现象: 一段代码: ClassLoader loader = XXXUtil.class.getClassLoader(); String jsFileName = loader.getResourc ...
- 实现strcpy
#include <stddef.h> char* strcpy(char* dest, const char* src) { if (dest == NULL || src == NUL ...
- SAS进阶《深入解析SAS》之开发多语言支持的SAS程序
SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...
- Linux文件系统inode、block解释权限(三)
利用文件系统的inode和block来分析文件(目录)的权限问题. 为什么读取一个文件还要看该文件路径所有目录的权限? 为什么目录的w权限具有删除文件的能力,而文件w权限不行. inode:记录文件的 ...