XMLHttpRequest最早是在 IE5 中以activeX组件形式实现。XMLHttpRequest并不是一个W3C标准。
IE所XMLHttpRequest实现为一个ActiveX对象,其他浏览器把它实现为一个本地JavaScript对象。
创建XMLHttpRequest对象
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
}
XMLHttpRequest方法和属性
-
标准XMLHttpRequest操作
- abort()——停止当前请求
- getAllResponseHeaders()——把HTTP请求的怕有响应首部作为键/值对返回
- getResponseHeader('header')——返回指定首部的串值
- open('method','url')——建立对服务器的调用。method参数可以是GET、POST或PUT。url可以是相对URL或绝对URL。这个方法还包括3个可选
- send(content)——向服务器发送请求
- setRequestHeader('header','value')——把指定首部设置为所提供的值。在设置任何首部之前必须调用open()
void open(string method, string url, boolean asynch, string username, string password):第三个参数指示异步的还是同步的,默认值为true,表示请求本质上是异步的。如果这个参数为false处理会等待,直到从服务器返回响应为止。最后两个参数允许你指定一个特定的用户和密码。
void send(content):向服务器发送请求。如果请求声明为异步的,这个方法就会立即返回,否则直到接收到响应为止。参数可以是DOM对象的实例、输入流,或者串。体入这个方法的内容会作为请求体的一部分发送。
void setRequestHeader(string header, string value):这个方法为HTTP请求中一个给定的首部设置值。这个方法必须在调用open()之后才能调用。
onreadystatechange——每个状态改变时都会触发这个处理器,通常会调用一个JavaScript函数
readyState——请求的状态,有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成
responseText——服务器的响应,表示为一个文本串
responseXML——服务器的响应,表示XML,这个对象可以解析为一个DOM对象
status——服务器HTTP状态码(200对应OK,404对应页面未找到,等等)
statusText——HTTP状态码的相应文本(OK或页面未找到等等)
服务器返回内容类型
服务器返回的内容要设置成text/xml、text/plain,因为XMLHttpRequest对象只能处理text/html类型的结果。
不缓存页面内容
使用浏览器不会在本地缓存结果,服务器端需设置以下HTTP头信息:
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setHeader("EXpires",0);
客户端JavaScript设置:
request.setRequestHeader("Cache-Control","no-cache");
request.setRequestHeader("Pragma","no-cache");
request.setRequestHeader("EXpires",0);
回调方法通常写法
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
//do something interesting here
}
}
}
POST方式请求头所需设置
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- 大小: 13.9 KB
- 大小: 3.4 KB
- 大小: 7.4 KB
分享到:
相关推荐
经测试,用此方法创建XMLHttpRequest对象,在运用AJAX的时候,可以的兼容IE6,IE7,IE8,Opera,Safari,Google Chrome,fireFox。主流的应该就这些吧?theWorld,遨游等浏览器都是以IE为核心的,所以肯定也没问题。 另外...
[王兴魁]AJAX核心技术1-XMLHttpRequest对象的使用
Ajax深度剖析,XMLHttpRequest对象大揭秘
本文实例讲述了不使用XMLHttpRequest对象实现Ajax效果的方法。分享给大家供大家参考,具体如下: 前言: 我以前接触Ajax的时候,只是用Jquery的api来实现Ajax效果,对其并没有细细研究,最近在学习Ajax的原理,会不...
AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
摘要:本节补充ajax学习笔记1中 第二种方式:使用XMLHttpRequest对象的responseXML的方式来接受XML数据对象的DOM对象 在ajax学习笔记1中已经对准备工作和需要用到的知识做了比较详细的介绍,本节主要介绍需要修改的...
一个用于修改 ajax 请求响应的 chrome 扩展,修改ajax请求数据
全面剖析Ajax XMLHttpRequest对象
使用XMLHTTPRequest实现自定义ajax。javascript闭包模式写法。值的学习
创建XMLHttpRequest对象的方法.rar创建XMLHttpRequest对象的方法.rar创建XMLHttpRequest对象的方法.rar
ajax XMLHttpRequest。。。。。。
VS2008 AJAX控件介绍 AJAX组成及XMLHttpRequest对象的讲解
使用XMLHttpRequest对象
asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子
Ajax核心对象XMLHTTPRequest详细参数及例子
在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象。由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。 ...
XMLHttpRequest对象,Ajax中的技术手册之一
介绍了XMLHttpRequest对象的基本知识