例1:显示本地文件内容
需要两个文件: ajax1.htm和hello.txtajax1.html
<HTML>
<HEAD>
<TITLE>实例1:XMLHTTP的简单使用 </TITLE>
<script type = "text/javascript">
function HelloAjax(localfile){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("Get", localfile, false);
xmlhttp.send(null);
alert(xmlhttp.responseText);
}
</script>
</HEAD>
<BODY>
<INPUT TYPE="button" VALUE="实例1" onClick="HelloAjax('hello.txt')">
</BODY>
</HTML>
用记事本新建一个 hello.txt 文件,内容就一句:“ Hello AJAX! ”。
将ajax1.html和hello.txt这两个文件放在同一目录下,在IE浏览器中打开ajax1.htm,点击“实例1”按钮,可以看到用脚本弹出的对话框中显示了hello文件的内容.
IE中使用ActiveX控件方式创建XmlHttp对象,如 var xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); 如果你使用的是IE6,可以使用XMLHTTP的更高级版本,如 "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0"等等,版本越高,也许速度更快、性能更好,反正具体如何 我不清楚。
而在非IE的浏览器中,是用 new XMLHttpRequest() 来创建一个对象的(据说在IE 7中,XMLHTTP 将作为本地 Javascript 对象,也许也可以这样创建了)。
在创建一个XMLHttp对象后,就可以使用它的open方法了,其参数为 open(http-method, Url, boolAsync, userID, password)。前两个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:
http-method: HTTP的通信方式,比如GET, HEAD, POST, PUT, Delete, CONNECT等,常用GET,POST。
url: 接收XML数据的服务器的URL地址。URL可带QueryString
boolAsync: 一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作,默认为 true。
userID: 用户ID,用于服务器身份验证
现在,hello.txt文件中增加一行汉字,如:“欢迎来到javamxj的Blog”,保存。刷新ajax1.html,然后点击“实例1”按钮,这 个时候弹出的窗口中的第二行应该是乱码。用“记事本”打开hello.txt,点击“文件 ->另存为”,注意这时弹出的“另存为”窗口中的文件编 码应该是“ANSI”,现在要改变它,选择编码为“Unicode”或“UTF-8”,保存。然后再次点击“实例1”按钮,可以看到汉字已经正确显示出来 了。
password: 用户密码,用于服务器身份验证
在例1中,使用的Get方式,获取的url是一个本地文件,使用的是同步方式。注意:一般很少使用同步方式,如果处理的是本地文件且文件不大,也可以使用同步方式,但如果处理的是网络上的文件,网络性能不好的话,看起来就像死机一样。