惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
博客园_首页
量子位
雷峰网
雷峰网
GbyAI
GbyAI
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
D
DataBreaches.Net
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Cloudflare Blog
IT之家
IT之家
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东

博客园 - 许文

Sql server一些常见性能问题的总结 ASP.NET 开发规范 第八章 其它 ASP.NET 开发规范 第七章 控件命名 ASP.NET 开发规范 第六章 语句 - 许文 ASP.NET 开发规范 第五章 命名 ASP.NET 开发规范 第四章 声明 ASP.NET 开发规范 第三章 注释 ASP.NET 开发规范 第二章 代码外观 ASP.NET 开发规范 第一章 概述 ASP.NET 开发规范(目录) 多个子站点共用同一个Cookies验证 好久没有更新了,上传一个网站上通用的验证效果的函数吧。 信息系统集成项目管理的认识和体会 人月神话:软件界面交互和易用性改进总结 ajax类使用过程出现的问题请教. 使用Nielsen的十条准则做WEB的启发式评估 写了一个Ajax的验证用户注册的函数, FileSystem对象常用的文件操作函数有哪些(转载) 您喜欢哪一种变量命名的规则
HotHeart写的Ajax类使用实例
许文 · 2006-12-21 · via 博客园 - 许文

关于XmlHttpRequest类的使用说明

1.  Ajax类功能描述:

实现xmlhttprequest对象的定义,参数的设置,请求的发送,返回值的处理.对于调用的过程是参数化的,使用者只要了解参数调用的规则就可以了.

2.  类说明:

  参数:

      method  -  请求方法,字符串,POST或者GET,默认为POST

   url      -  请求URL,字符串,默认为空

   async -  是否异步,true为异步,false为同步,默认为true

   content  -  请求的内容,如果请求方法为POST需要设定此属性,默认为空

callback  - 回调函数,即返回响应内容时调用的函数,默认为直接返回,回调函数有一个参数为XMLHttpRequest对象,即定义回调函数时要这样:function mycallback(xmlobj)

  方法:

      方法:send()     -  发送请求,无参数

3.        使用说明

分三个部分

Ø        ajax.js为独立的类文件

Ø        调用的页面写相应的提交或调用的函数,用来进行对ajax对象属性的设置和方法的调用,并通用返回的状态码进行处理.

Ø        服务器端代码 对传递的数据进行处理,处理完毕后返回状态码

3.  调用关键点:

1)       实例化xmlhttp对象: var xmlhttp=new AJAXRequest;

2)       决定发送请求的类型是用Get还是Post xmlhttp.method = "POST/GET",如果是用post请求,请设置一下xmlhttp. Content传递参数属性 xmlhttp.Content=( "key=value")

3)       设置xmlhttp.url属性指定处理请求的地址xmlhttp.url =  "Default.asp"

4)       回调函数处理:使用xmlobj.requestText属性获得服务器端返回的值,在这里也可调用相关的函数.

Ø        xmlhttp.callback=function(xmlobj) {

Ø        document.write(unescape(xmlobj.responseText));}

5)       发送请求xmlhttp.send(null) 如果是使用post请求的话,xmlhttp.send()即可

6)       对于参数的输入传递使用,服务端输出的内容使用secape进行编码,返回获取时使用unescape函数进行解码即可.以下是调用的实例过程.

4.        简单的使用实例

Demo.html 调用代码:代码演示了简单的发送请求的过程

 1<script type="text/javascript" src="ajaxrequest.js"></script>
 2<script type="text/javascript">
 3var xmlhttp=new AJAXRequest;    // 创建AJAX对象
 4xmlhttp.method="get";   
 5// xmlhttp.method="POST";        
 6//xmlhttp.content=("type=12")
 7xmlhttp.url="default.asp"  // URL为default.asp
 8// 设置回调函数,输出响应内容
 9xmlhttp.callback=function(xmlobj) {
10     document.write(unescape(xmlobj.responseText));}

11xmlhttp.send(null);    // 发送请求,如果是post方法,使用xmlhttp.send();
12
</script>
13

default.asp 处理请求,并返回结果:页面来点简单的内容来响应客户端的请求

 1<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
 2<%
 3    dim stype
 4    stype = request.form("type")
 5    if stype = "" then
 6    response.write "这是服务器端产生的代码"
 7    else
 8        response.write escape("这是服务器端返回的数据-" & stype)
 9    end if
10%>
11

Ajax.js类源码

 1function AJAXRequest() {
 2    var xmlObj = false;
 3    var CBfunc,ObjSelf;
 4    ObjSelf=this;
 5    try { xmlObj=new XMLHttpRequest; }
 6    catch(e) {
 7        try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
 8        catch(e2) {
 9            try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
10            catch(e3) { xmlObj=false; }
11        }

12    }

13    if (!xmlObj) return false;
14    this.method="POST";
15    this.url;
16    this.async=true;
17    this.content="";
18    this.callback=function(cbobj) {return;}
19    this.send=function() {
20        if(!this.method||!this.url||!this.async) return false;
21        xmlObj.open(this.method,this.url,this.async)
22        if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
23        xmlObj.onreadystatechange=function() {
24            if(xmlObj.readyState==4{
25                if(xmlObj.status==200{
26                    ObjSelf.callback(xmlObj);
27                }

28            }

29        }

30        if(this.method=="POST") xmlObj.send(this.content);
31        else xmlObj.send(null);    }

32}

33


调用起来不是很复杂,这里有使用post,get方法传递的例子,可惜我不知道如何上传别人可以看的附件,如果要的话,请把邮箱给我
此文感谢:HotHeart给以的ajax源码支持.