原创一个AJAX类
作者:biyuan 来源:biyuan的专栏 时间:2008-07-24 13:29:00
Ajax类
Send方法的参数解释:
Ajax.Send(Url[, Async[, CallFunc[, User[, Pass]]]]);
Ajax:
必选项,Ajax对象的一个实例。
Url:
必选项,请求的地址。
Async:
可选项,为空表示请求模式为GET,为具体参数(如:{key : "postkey", value : "postvalue"})表示请求为POST。
CallFunc:
可选项,为空表示同步请求,为一个Function对象时表示异步请求并在Ajax的onreadystatechange事件中调用此函数。
User:
可选项,服务器需要验证时此参数为验证需要的用户名。
Pass:
可选项,服务器需要验证是此参数为验证需要的密码。
例子:
function getSend() {
if(ajax.xml.readyState == 4 && ajax.xml.status == 200){
alert(ajax.xml.responseText);
}
else {
alert("wait...");
}
}
var PostString = {
classid : 1,
search : "无忧脚本"
}
var ajax = new Ajax();
ajax.Send("http://bbs.51js.com/");//GET同步请求,可用ajax.xml.responseText获取返回值
ajax.Send("http://bbs.51js.com/", false, getSend);//GET异步请求,回调getSend()函数
ajax.Send("http://bbs.51js.com/", PostString);//POST同步请求,可用ajax.xml.responseText获取返回值
ajax.Send("http://bbs.51js.com/", PostString, getSend);//POST异步请求,回调getSend()函数
以下为程序代码:
function Ajax() {
this.xmlObject = function() {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
return new XMLHttpRequest();
}
catch(e) {
return window.createRequest();
} ;
};
};
};
this.xml = this.xmlObject();
this.Send = function() {
var PostStr = !!arguments[1] ? (function() {
var tempArr = new Array();
for(var i in arguments.callee.caller.arguments[1]){
tempArr.push(i + "=" + arguments.callee.caller.arguments[1][i]);
}
return tempArr.join("&");
})() : null;
this.xml.open(PostStr ? "POST" : "GET", arguments[0], !!arguments[2], arguments[3], arguments[4]);
!!arguments[2] ? this.xml.onreadystatechange = arguments[2] : null;
if(PostStr){
this.xml.setRequestHeader("Content-Length", PostStr.length);
this.xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
};
this.xml.send(PostStr);
};
};
标签:ajax,类,XMLHTTP
0
投稿
猜你喜欢
Python调用ChatGPT制作基于Tkinter的桌面时钟
2023-05-11 08:23:23
SELECT...INTO的具体用法
2024-01-29 02:20:43
python实现简单登陆系统
2023-05-25 06:50:49
跟老齐学Python之编写类之一创建实例
2021-05-06 21:16:56
python+pytest自动化测试函数测试类测试方法的封装
2021-12-26 21:03:14
Javascript编写Asp时需要注意的一些地方
2008-04-06 14:20:00
ant design vue datepicker日期选择器中文化操作
2024-05-09 10:51:35
django 连接数据库出现1045错误的解决方式
2024-01-17 19:37:47
深入了解Hybrid App技术的相关知识
2023-08-10 09:36:02
Prometheus 监控MySQL使用grafana展示
2024-01-21 07:18:53
Python深拷贝与浅拷贝用法实例分析
2023-11-06 01:25:04
python 绘图模块matplotlib的使用简介
2023-08-09 19:09:01
在go中使用omitempty的代码实例
2024-04-25 15:12:47
将SQL 2000日志迁移到SQL Server 2008
2009-03-25 16:20:00
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2024-04-22 12:59:41
获取Django项目的全部url方法详解
2022-09-08 23:06:27
Python实现PDF转MP3的示例代码
2021-08-07 21:21:06
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2021-01-09 10:40:27
python爬虫开发之selenium模块详细使用方法与实例全解
2022-12-15 01:28:40
本地使用Docker搭建go开发环境的全过程
2024-04-30 10:05:49