JavaScript ajax http



AJAX的核心是XMLHttpRequest对象。


XMLHttpRequest 对象

支持所有现代浏览器的XMLHttpRequest对象

XMLHttpRequest 对象用于与后台服务器交换数据。这意味着它可以更新网页的一部分,无需重新加载整个页面.


创建一个XMLHttpRequest对象

所有现代浏览器(Chrome, IE7+, Firefox, Safari, and Opera)有一个内置的XMLHttpRequest对象.

创建一个XMLHttpRequest对象语法如下:

variable = new XMLHttpRequest();

旧版本的Internet Explorer (IE5 和 IE6) 使用ActiveX 对象:

variable = new ActiveXObject("Microsoft.XMLHTTP");

处理所有浏览器, 包括 IE5 和 IE6, 检查浏览器是否支持XMLHttpRequest对象。如果没有创建XMLHttpRequest对象,创建一个ActiveX对象:

var xhttp;
if (window.XMLHttpRequest) {
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6, IE5
    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

让我试试


跨域访问

出于安全原因,现代浏览器不允许跨域访问.

这意味着它试图加载的网页和XML文件必须位于同一服务器上。.

编程字典的实例,所有打开的XML文件都位于codingdict.com域上。

如果您想在您自己的网页上使用上述示例,则加载的XML文件必须位于您自己的服务器上。


旧版本的Internet Explorer (IE5 和 IE6)

旧版本的Internet Explorer (IE5 和 IE6) 不支持 XMLHttpRequest 对象.

处理IE5 和 IE6, 检查浏览器是否支持 XMLHttpRequest 对象, 否则创建一个ActiveXObject:

if (window.XMLHttpRequest) {
    // code for modern browsers
    xmlhttp = new XMLHttpRequest();
 } else {
    // code for old IE browsers
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

让我试试


XMLHttpRequest 对象方法

方法 描述
new XMLHttpRequest() 创建一个新的XMLHttpRequest对象
abort() 取消当前请求
getAllResponseHeaders() 返回头信息
getResponseHeader() 返回指定头信息
open(method, url, async, user, psw) 指定请求

方法: 请求类型 GET 或者 POST
url: 文件位置
async: true (异步) 或者 false (同步)
user: 可选的用户名称
psw: 可选密码
send() 使用GET请求,发送请求到服务器
send(string) 使用POST请求,发送请求到服务器
setRequestHeader() 添加一个键值对到头信息

XMLHttpRequest 对象属性

属性 描述
onreadystatechange 定义了一个函数的调用,当readyState属性改变
readyState XMLHttpRequest状态.
0: 请求未初始化
1: 服务器连接建立
2: 收到请求
3: 处理请求
4: 请求完成并响应就绪
responseText 将响应数据作为字符串返回
responseXML 将响应数据作为xml返回
status 返回请求的状态号
200: "OK"
403: "禁止"
404: "未找到"
statusText 返回状态文本 (例如: "OK" 或者 "Not Found")