一个ajax方法

一个ajax方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function getXMLHTTPRequest(){
var AjaxRequest = null;
if(window.XMLHttpRequest){
AjaxRequest = new XMLHttpRequest();
}
else if(typeof ActiveXObject != 'undefined'){
AjaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
}
return AjaxRequest;
}
function onReady(){
var r = Request.readyState;
if(r===4){
var data = Request.responseText;
alert(data);
}
}
var Request = getXMLHTTPRequest();
if(Request){
Request.onreadystatechange = onReady;
Request.open('GET', './ajax1.txt?ID=222', true);
Request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
Request.send(); //POST为Request.send(JSON对象)
}

网上大多是这样的代码,实例化Request对象,然后调用ajax方法。

但是我们注意一下代码中红色的部分,我们先看:

1、 Request.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’);

setRequestHeader方法附带2个参数,分别是修改请求头的名字和值。具体列表如下:

1、Content-Type:application/x-www-form-urlencoded(一般是这个)

2、Content-Length:你想要提交的数据长度.(仅对POST有效)

3、Connection:Close (这个我试了下,貌似无效!想要关闭ajax链接长时间无响应还是将实例化对象设置为NULL吧,就会被回收了)

4、snoopy:wzh (当然也支持自定义请求头信息)

2、 AjaxRequest = new ActiveXObject(‘Microsoft.XMLHTTP’);

JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用。使用方法:

1
2
3
4
5
6
newObj = new ActiveXObject( servername.typename[, location])
ActiveXObject 对象语法有这些部分:
servername是必选项。提供该对象的应用程序的名称。
typename是必选项。要创建的对象的类型或类。
location是可选项。创建该对象的网络服务器的名称。
Automation服务器至少提供一类对象,例如字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。

这里的’Microsoft.XMLHTTP’则表示创建一个XMLHTTP对象为AJAX所用。

具体详细的ActiveXObject说明和应用请查阅相关手册把。