很久之前写的一个小型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. 数据结构(Splay平衡树): [NOI2007] 项链工厂

    [NOI2007] 项链工厂 ★★★   输入文件:necklace.in   输出文件:necklace.out   简单对比 时间限制:4 s   内存限制:512 MB [问题描述] T公司是一 ...

  2. Chrome DevTools学习笔记

    ---恢复内容开始--- chrome和firefox的开发者工具大同小异,都非常强大.今天在博客园上看了这篇文章(http://www.cnblogs.com/Wayou/p/chrome-cons ...

  3. Android中调用Paint的measureText()方法取得字符串显示的宽度值

    1 public static float GetTextWidth(String text, float Size) { //第一个参数是要计算的字符串,第二个参数是字提大小 2         T ...

  4. Mybatis-Generator 详解 http://www.cnblogs.com/jtzfeng/p/5254798.html

    Mybatis-Generator 自动生成Dao.Model.Mapping相关文档 最近在学习mybatis,结果在写Mapping的映射文件时insert语句一直报错,于是想看看标准的映射文件是 ...

  5. 二维码开源库zbar、zxing使用心得

    首先说明我的测试场景是“识别打印在纸上的二维码”,在扫描结果中寻找二维码并进行识别,而不是直接让摄像头对着二维码扫描. zbar和zxing用的都是自己从github上clone的c++源码/接口编译 ...

  6. java关键字synchronized

    1.对于synchronized方法和synchronized块,一个线程访问时,其他线程可以访问此类的非synchronized方法或块,不能访问其他带synchronized的方法或块. 举例如下 ...

  7. 关于lucene的IndexSearcher单实例,对于索引的实时搜索

    Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...

  8. Open-source Project官方地址

    非常遗憾因为这篇博文是专门搜集各个开源项目的各种官方连接地址的,所以链接较多,csdn不同意保存. 请点击这里下载. 因为我的积分不多了,所以这个文档须要一个积分..应该不多吧...确实没有积分的童鞋 ...

  9. ScheduledExecutorService定时周期运行指定的任务

    一:简单说明 ScheduleExecutorService接口中有四个重要的方法,当中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比較方便. ...

  10. uva 116 Unidirectional TSP (DP)

    uva 116 Unidirectional TSP Background Problems that require minimum paths through some domain appear ...