很久之前写的一个小型AJAX的js,放在上面以免以后想玩了找不到了。

//  version : 0.1 beta
// author : __Ajax function __Ajax(url,options){ var xhr = window.ActiveXObject && new window.ActiveXObject('Microsoft.XMLHTTP') || new XMLHttpRequest(); // 默认设置
options.method = options.method || 'GET';
options.onSuccess = options.onSuccess || function () { };
options.onFailure = options.onFailure || function () { };
options.onComplete = options.onComplete || function () { }; // 状态改变
xhr.onreadystatechange = function () { if (xhr.readyState != 4) return;
xhr.status == 200 ? options.onSuccess(xhr.responseText, xhr.responseXML) : options.onFailure(xhr);
options.onComplete();
} xhr.open(options.method, url); /*
beta 代码,备用
// 解决未设置method的值为默认GET
// options.method = options.method || 'GET'
*/ options.method.toUpperCase() == 'POST' && xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send(options.data); return xhr;
}

使用起来很方便,大家可以拿来玩玩。呵呵。

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="__Ajax.js"></script>
<script type="text/javascript"> window.onload = function () { __Ajax('index.php', { method: 'post',
data: 'name=aaaa',
onSuccess: function (data) {
alert(data);
},
onFailure: function (xhr) {
alert('error');
} });
} </script> </head>
<body> </body>
</html>

压缩版

function __Ajax(b,a){var c=window.ActiveXObject&&new window.ActiveXObject("Microsoft.XMLHTTP")||new XMLHttpRequest();a.method=a.method||"GET";a.onSuccess=a.onSuccess||function(){};a.onFailure=a.onFailure||function(){};a.onComplete=a.onComplete||function(){};c.onreadystatechange=function(){if(c.readyState!=4){return}c.status==200?a.onSuccess(c.responseText,c.responseXML):a.onFailure(c);a.onComplete()};c.open(a.method,b);a.method.toUpperCase()=="POST"&&c.setRequestHeader("Content-type","application/x-www-form-urlencoded");c.send(a.data);return c};

很久之前写的Ajax库的更多相关文章

  1. 偶然翻出很久很久以前写的一款sqlmap UI,有点年头了

  2. 百度翻译api初使用(很久没写python了,写几行玩玩)

    调用free api做做简易的翻译 这个是百度翻译api文档 http://api.fanyi.baidu.com/api/trans/product/apidoc 照着百度api给的文档向web服务 ...

  3. 【2020Java最新学习路线】写了很久,这是一份最适合普通大众、科班、非科班的路线

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  4. SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)

    弄了很久,想使用domove这个操作,但是都失败了.最后给svnkit的邮箱写了封邮件,他们告诉我这样做就成功了.实际上是使用docopy这个函数实现了move操作.package com.repos ...

  5. 安利自己写的easy-clipboard库

    概述 clipboard.js 是一个非常好用的剪切板插件,但是随着前端框架的演变,用户与网页交互的方式越来越多,不仅限于点击事件了,并且在很多情况下,我们可能不需要它强制性自带的点击事件,所以我打算 ...

  6. 写一个ajax程序就是如此简单

    写一个ajax程序就是如此简单 ajax介绍: 1:AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),指一种创建交互式网页应用的网页开发 ...

  7. 分享一些自己写的前端库,并骗骗 star(库都是在实际项目中大量运用过的)

    最近一两年在一些项目上,通过实际需求出发,编写了一些库在项目中使用,现在将这些项目都稍微整理了一下开源了出来,也许也有刚好能够你也用得上的,顺便也骗一下star.均在项目的README中加了相关的说明 ...

  8. mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,

      在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记 ...

  9. 用es6写一个分数库

    es6发布后nodejs开始更新.最近写一些库发现新特性还是很好用的,于是回来写一个分数库练手. 对于es6本身 ... => 以及 array.includes 很简洁.class依然不是很顺 ...

随机推荐

  1. Light OJ 1018 - Brush (IV)

    题目大意:     一个二维平面上有N个点,一把刷子,刷一次可以把一条线上的所有点都刷掉.问最少刷多少次,可以把全部的点都刷完 状态压缩DP, 用记忆化搜索来写, 需要有个优化不然会超时. ===== ...

  2. 数据结构(并查集):COGS 260. [NOI2002] 银河英雄传说

    260. [NOI2002] 银河英雄传说 ★★☆   输入文件:galaxy.in   输出文件:galaxy.out   简单对比时间限制:5 s   内存限制:128 MB [问题描述] 公元五 ...

  3. 综合查询员工和datetime.now和datetime.today区别

    一:综合查询图 二:EmployeeListWindow.cs代码 using System; using System.Collections.Generic; using System.Compo ...

  4. C字符数组及其应用

    1.字符数组和其他数值类型的数组的定义引用和初始化都是相同的. 特别注意的是: 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串. \0'是由C编译系统自动加上的. 2. C语言允许 ...

  5. 软工UML学习札记

    UML模型由:事物.关系和图组成 (1)类(class)── 类用带有类名.属性和操作的矩形框来表示. (2)主动类(active class)── 主动类的实例应具有一个或多个进程或线程,能够启动控 ...

  6. docs

    https://www.eucalyptus.com/docs/eucalyptus/3.4/index.html  [Eucalyptus PDF官方下载] http://aws.amazon.co ...

  7. Java父类子类的对象初始化过程

    摘要 Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: static 修饰的模块(static变量和 ...

  8. Android eclipse下数据开源框架GreenDao的配置

    1.前言 ORM(Object-RelationMapping,对象关系映射),是一种为了解决面向对象与数据库存在的互一匹配的现象的技术,通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到 ...

  9. Python监控日志程序

    一个简易的日志监控的脚本,功能如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应 注意:是在win环境下哦 直接上代码吧 1 2 3 4 ...

  10. CFBundleVersion与CFBundleShortVersionString,版本上架注意事项

    CFBundleVersion,标识(发布或未发布)的内部版本号.这是一个单调增加的字符串,包括一个或多个时期分隔的整数. CFBundleShortVersionString  标识应用程序的发布版 ...