var xmlHttp;
function createXMLHttpRequest() {
//检查是否支持 ActiveXObject 控件(IE浏览器)
if(window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
void open(string method, string url, boolean async, string username, string password) 创建对服务器的调用。javascript
void send(context):具体向服务器发出请求。若是请求声明为异步,这个方法就会当即返回,不然它会等待直到接收到响应为止。html
null
;若为 POST 时,参数内容将做为请求体的一部分发送。void setRequestHeader(string header, string value):为请求中一个给定的首部设置值。这个方法必须在 open() 以后才能调用。java
void abort():中止请求。web
string getAllResponseHeaders():返回一个串,其中包含HTTP请求的全部响应首部,首部包括Content-length、Data和URL。
string getResponseHeaders(string header):与上面的 getAllResponseHeaders( ) 对应。ajax
属性 | 描述 |
---|---|
onreadystatechange | 每一个状态改变时都会触发这个事件处理器,值能够为回调函数的指针 |
readyState | 请求的状态。有5个可取值。(在下方有说明) |
responseText | 服务器的响应,表示一个串 |
responseXML | 服务器的响应,表示为XML。这个对象可解析为一个 DOM 对象 |
status | 服务器的 HTTP 状态码(200对应 OK,404对应 Not Found …) |
statusText | HTTP 状态码的相应文本(OK 或 Not Found …) |
readyState 请求状态的5个值:浏览器
请求返回到浏览器时的首部设置:服务器
GET 请求经过向 url 传递参数,浏览器和服务器会限制其长度。
POST 则不会限制发送给服务器的数据量大小。通常来说,markdown
使用 POST 时,须要设置 XMLHttpRequest 对象的 Content-Type 首部:app
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
onreadystatechange
属性存储了回调函数的指针。当 XMLHttpRequest 对象的内部状态发生改变时,就会调用这个回调函数。当进行了异步调用,请求就会发出,脚本当即处理执行。一旦发出了请求,对象的 readyState
属性会通过几个变化,通常处理的是服务器响应结束时的状态。
回调函数 callback 方法:异步
xmlHttp.onreadystatechange = callback; //函数指针
function callback() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.Status == 200) {
//能够简单的设置div的文本等等
}
}
}
//javascript
var xmlHttp;
function createXMLHttpRequest() {
//检查是否支持 ActiveXObject 控件(IE浏览器)
if(window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "simpleResponse.xml", true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
alert("The server replied with: " + xmlHttp.responseText);
//显示 simpleResponse.xml 里的文本
}
}
}
<!--html-->
<form action="#">
<input type="button" value="Start Basic Asynchronous Request" onclick="startRequest();" />
</form>
注:以上摘自《Ajax基础教程》