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

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
U
Unit 42
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
L
LangChain Blog
D
Docker
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
I
InfoQ
The Cloudflare Blog
小众软件
小众软件
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
V
V2EX
月光博客
月光博客
Martin Fowler
Martin Fowler

博客园 - sunfishlu

一步一步学习Windows Azure(二)Azure之Hello World 一步一步学习Windows Azure(一)概述 一步一步学习CakePHP(三)model 一步一步学习CakePHP(二)controllers 一步一步学习CakePHP(一)基本概念 JQuery写的个性导航菜单 - sunfishlu - 博客园 JQueryUI(五):Dialog(第二部分) JQueryUI(四):Dialog(第一部分) - sunfishlu - 博客园 JQueryUI(三):Accordion JQueryUI(二):Tabs(第二部分) JQueryUI(一):Tabs(第一部分) - sunfishlu - 博客园 封装的Ext Grid 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。 - sunfishlu - 博客园 ToolTip(图片文字) with Jquery Ext中combobox在Grid里显示问题 javascript与dom编程(四)animation(例)Tooltips javascript与dom编程(三)animation extjs grid设置某列背景颜色 javascript与dom编程(二)Event
javascript与dom编程(五)ajax
sunfishlu · 2009-06-01 · via 博客园 - sunfishlu

一:创建XMLHttpRequest对象

    在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象,在IE56)中是把XMLHttpRequest实现为一个ActiveX对象,如:var requester = new ActiveXObject("Micrsoft.xmlHTTP");

其它的浏览器包括IE7是把实现为一个JavaScript对象。如:

var requester = new XMLHttpRequest();

    我们可以通过try-catch,在不同的浏览器中,正确的创建XMLHttpRequest对象。

try

{

    var requester = new XMLHttpRequest();

}

catch(error)

{

    try

    {

       var requester = new ActiveXObject("Microsoft.XMLHTTP");

    }

    catch(error)

    {

       var requester = null;

    }

}

二:与服务器通信

创建好XMLHttpRequest后,我们需要调用opensend两个方法,用来从服务器取得数据。

open用来初始化与服务器的连接,它带有两个必选的参数。第一个参数为请求的方式,(getpostput),第二个为获得数据的url地址。例如:

requester.open("GET", "/feed.xml", true);第三个参数指定请求是异步还是同步,默认为异步。

send方法激活此连接,向服务器发送请求。当使用POST请求时,send允许发送一个已经编码过的参数。

requester.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");//Opera浏览器下

requester.open("POST", "/query.php", true);

requester.send("name=Clark&email=superman@justiceleague.xmp");

使用GET时,参数必须随着url传送。例如:

requester.open("GET",

"query.php?name=Clark&email=superman@justiceleague.xmp", true);

requester.send(null);

IE下,send不需要任何参数,但是在firefox中则会出现错误。所以我们必须给send一个null的参数。

调用send后,XMLHttpRequest将会与服务器通信,返回你所请求的数据。为了确认服务器已经响应请求,我们可以监视XMLHttpRequestreadyState属性,有5个可取值,0=初始化,1=正在加载,2=已加载,3=交互中,4=完成。

请求完成后,我们还必须确认XMLHttpRequest是否正确得到数据,我们可以查看statusHTTP状态码,200对应OK404对应Not Found

三:处理数据

1responseXML:服务器的响应,表示为XML,可以解析为一个DOM对象。

2responseText:服务器的响应,表示为一个串。