XMLHttpRequest 对象的方法与属性
方 法
|
描 述
|
abort()
|
停止当前请求
|
getAllResponseHeaders()
|
把HTTP请求的所有响应首部作为键/值对返回
|
getResponseHeader("header")
|
返回指定首部的串值
|
open("method", "url")
|
建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数
|
send(content)
|
向服务器发送请求
|
setRequestHeader("header", "value")
|
把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()
|
属 性
|
描 述
|
onreadystatechange
|
每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
|
readyState
|
请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
|
responseText
|
服务器的响应,表示为一个串
|
responseXML
|
服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
|
status
|
服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等)
|
statusText
|
HTTP状态码的相应文本(OK或Not Found(未找到)等等)
|
实例:
页面代码:HTMLPage.htm
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title></title>
5 <script type="text/javascript">
6 var req;
7 function sendtime() {
8 var url = "ajaxServer.aspx";
9 if (window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
10 {
11 req = new XMLHttpRequest();
12 }
13 else if (window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
14 {
15 req = new ActiveXObject("Microsoft.XMLHttp");
16 }
17 if (req) {
18 xmlhttp.open("post", url, false);
19 xmlhttp.onreadystatechange = function () {
20 if (xmlhttp.readyState == 4) {
21 if (xmlhttp.status == 200) {
22 document.getElementById("txtTime").value = xmlhttp.responseText;
23 }
24 else {
25 alert('AJAX错误');
26 }
27 }
28 }
29 xmlhttp.send();
30 }
31 }
32
33 </script>
34 </head>
35 <body>
36 <input id="txtTime" type="text" /><input id="btn1" type="button" value="AJAX" onclick="sendtime()" />
37 </body>
38 </html>
ajaxServer.ashx代码:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5
6 namespace WCFAJAX
7 {
8 /// <summary>
9 /// Handler1 的摘要说明
10 /// </summary>
11 public class Handler1 : IHttpHandler
12 {
13
14 public void ProcessRequest(HttpContext context)
15 {
16 context.Response.ContentType = "text/plain";
17 context.Response.Write(DateTime.Now.ToString());
18 }
19
20 public bool IsReusable
21 {
22 get
23 {
24 return false;
25 }
26 }
27 }
28 }