XMLHttpRequest对象(一)
- 作者:洒血 | 分类: ajax | 评论:0 | 浏览:44 | 时间:2011-05-03 20:00:13 |
- 主要讲述XMLHttpRequest对象的创建,以及XMLHttpRequest对象的调用及使用方法,以及对XMLHttpRequest对象参考。
-
创建XMLHttpRequest对象
与之前众多DOM操作一样,创建XHR对象也具有兼容性问题:IE6及之前的版本使用ActiveXObject,IE7之后及其它浏览器使用XMLHttpRequest
不但IE6及其之前的版本将XHR作为一个ActiveXObject运行,而且还存在众多版本:一开始是Microsoft.XMLHTTP 之后变成Msxml2.XMLHTTP及更新版的Msxml3.XMLHTTP
function XHR() {
var xhr;
try {xhr = new XMLHttpRequest();}
catch(e) {
var IEXHRVers =["Msxml3.XMLHTTP","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i=0,len=IEXHRVers.length;i< len;i++) {
try {xhr = new ActiveXObject(IEXHRVers[i]);}
catch(e) {continue;}
}
}
return xhr;
}使用XHR
var xhr = XHR();
//open方法 创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码)
xhr.open(“get”,”test.txt”,true);
/*第一个参数是请求方式,一般用get与post方法,与form标签的method类似
第二个参数是请求的URL
第三个参数是请求是同步进行还是异步进行,true表示异步
调用了open方法仅仅是传递了参数而已*/
xhr.send(null);//调用了send方法后才会发出请求
//并且get方式发送请求时send参数是null
在服务器环境中执行上面的脚本,并且给一个php或asp脚本发送请求,会发现服务器端脚本其实会被执行
//PHP脚本
$fp =fopen(“a.txt”,”wb”);
fwrite($fp,”PHP文件在后台执行了”);
fclose($fp);
echo “返回内容!”;
上面PHP脚本的返回内容不会直接在页面上显示出来,必需要用JS通过XHR对象接收
var xhr = XHR();
xhr.open(“get”,”test.php”,true);
xhr.onreadystatechange = callback;//在readystatechange事件上绑定一个函数
//当接收到数据时,会调用readystatechange事件上的事件处理函数
xhr.send(null);
functon callback() {
//在这里面没有使用this.readyState这是因为IE下面ActiveXObject的特殊性
if (xhr.readyState == 4) {//readyState表示文档加载进度,4表示完毕
alert(xhr.reponseText);//responseText属性用来取得返回的文本
}
} -
本文链接:http://www.saxue.com/ajax/xmlhttprequest.html
郑重声明: 本站为原创作网站,请尊重本站版权,洒血博客版权所有,未经许可 请勿转载,未通知本站转载者请注明转载出处
-
- 赞助招商
