# AJAX XMLHttpRequest
**XMLHttpRequest 对象使 AJAX 成为可能。**
## XMLHttpRequest
XMLHttpRequest 对象是 AJAX 的关键。
该对象在 Internet Explorer 5.5 与 2000 年 7 月发布之后就已经可用了,但是在 2005 人们开始讨论 AJAX 和 Web 2.0 之前,这个对象并没有得到充分的认识。
## 创建 XMLHttpRequest 对象
不同的浏览器使用不同的方法来创建 _XMLHttpRequest_ 对象。
Internet Explorer 使用 _ActiveXObject_。
其他浏览器使用名为 _XMLHttpRequest_ 的 JavaScript 内建对象。
要克服这个问题,可以使用这段简单的代码:
```
var XMLHttp=null
if (window.XMLHttpRequest)
{
XMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
```
### 代码解释:
1. 首先创建一个作为 XMLHttpRequest 对象使用的 _XMLHttp_ 变量。把它的值设置为 null。
2. 然后测试 _window.XMLHttpRequest_ 对象是否可用。在新版本的 Firefox, Mozilla, Opera 以及 Safari 浏览器中,该对象是可用的。
3. 如果可用,则用它创建一个新对象:_XMLHttp=new XMLHttpRequest()_
4. 如果不可用,则检测 _window.ActiveXObject_ 是否可用。在 Internet Explorer version 5.5 及更高的版本中,该对象是可用的。
5. 如果可用,使用它来创建一个新对象:_XMLHttp=new ActiveXObject()_
## 改进的例子
一些程序员喜欢使用最新最快的版本的 XMLHttpRequest 对象。
下面的例子试图加载微软最新版本的 "Msxml2.XMLHTTP",在 Internet Explorer 6 中可用,如果无法加载,则后退到 "Microsoft.XMLHTTP",在 Internet Explorer 5.5 及其后版本中可用。
```
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
```
### 代码解释:
1. 首先创建用作 XMLHttpRequest 对象的 _XMLHttp_ 变量。把它的值设置为 null。
2. 按照 web 标准创建对象 (Mozilla, Opera 以及 Safari):_XMLHttp=new XMLHttpRequest()_
3. 按照微软的方式创建对象,在 Internet Explorer 6 及更高的版本可用:_XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")_
4. 如果捕获错误,则尝试更老的方法 (Internet Explorer 5.5) :_XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")_
## 更多有关 XMLHttpRequest 对象的信息
如果您希望阅读更多有关 XMLHttpRequest 的内容,请访问我们的 [AJAX 教程](/ajax/index.asp "AJAX 教程")。
- PHP 基础
- PHP 简介
- PHP 安装
- PHP 语法
- PHP 变量
- PHP 5 echo 和 print 语句
- PHP 数据类型
- PHP 字符串函数
- PHP 常量
- PHP 运算符
- PHP if...else...elseif 语句
- PHP Switch 语句
- PHP while 循环
- PHP for 循环
- PHP 函数
- PHP 数组
- PHP 数组排序
- PHP 全局变量 - 超全局变量
- PHP 魔术变量
- PHP 命名空间(namespace)
- PHP 表单
- PHP 表单处理
- PHP 表单验证
- PHP 表单验证 - 必填字段
- PHP 表单验证 - 验证 E-mail 和 URL
- PHP 表单验证 - 完成表单实例
- PHP $_GET 变量
- PHP $_POST 变量
- PHP 高级
- PHP 多维数组
- PHP 日期和时间
- PHP Include 文件
- PHP 文件处理
- PHP 文件打开/读取/读取
- PHP 文件创建/写入
- PHP 文件上传
- PHP Cookies
- PHP Sessions
- PHP 发送电子邮件
- PHP 安全的电子邮件
- PHP 错误处理
- PHP 异常处理
- PHP 过滤器(Filter)
- PHP JSON
- PHP 数据库
- PHP MySQL 简介
- PHP 连接 MySQL
- PHP MySQL 创建数据库
- PHP 创建 MySQL 表
- PHP MySQL 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- PHP MySQL 读取数据
- PHP MySQL Where 子句
- PHP MySQL Order By 关键词
- PHP MySQL Update
- PHP MySQL Delete
- PHP 数据库 ODBC
- PHP XML
- PHP XML Expat 解析器
- PHP XML DOM
- PHP SimpleXML
- PHP AJAX
- AJAX 简介
- AJAX XMLHttpRequest
- PHP 和 AJAX 请求
- PHP 和 AJAX XML 实例
- PHP 和 AJAX MySQL 数据库实例
- PHP 和 AJAX responseXML 实例
- PHP 和 AJAX Live Search
- PHP 和 AJAX RSS 阅读器
- PHP 和 AJAX 投票
- 免责声明