标签:ajax
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax</title>
<script>
/**
* onreadystatechange 每次状态改变所触发事件的事件处理程序。
* responseText 从服务器进程返回数据的字符串形式。
* responseXML 从服务器进程返回的DOM兼容的文档数据对象。
* status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
* status Text 伴随状态码的字符串信息
* readyState 对象状态值
* 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
* 1 (初始化) 对象已建立,尚未调用send方法
* 2 (发送数据) send方法已调用,但是当前的状态及http头未知
* 3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
* 4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据
*/
function createXHR(){
if(typeof XMLHttpRequest != "undefined"){
return new XMLHttpRequest();
}else if(typeof ActiveXObject != "undefined"){
if(typeof arguments.callee.activeXString != "string"){
var versions=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],
i,
len;
for (i = 0,len=versions.length; i < len; i++) {
try{
new ActiveXObject(versions[i]);
arguments.callee.activeXString=versions[i];
break;
}catch(ex){
console.log("error: "+ex);
}
};
}
return new ActiveXObject(arguments.callee.activeXString);
}else{
throw new Error("No XHR object available!");
}
}
var xhr=createXHR();
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if((xhr.status>=200 && xhr.status<300) || xhr.status==304){
console.log(xhr.responseText+"dd\n");
console.log(xhr.getAllResponseHeaders());
alert(xhr.responseText);
}else{
alert("request was unsuccessful: "+xhr.status);
}
}
}
xhr.onprogress=function(event){
var divstatus=document.getElementById("s");
if(event.lengthComputable){
divstatus.innerHTML="Received "+event.position+"of"+event.totalSize+"bytes";
}
};
xhr.open("post","http://xxxx",false);
xhr.send();
</script>
</head>
<body>
<div id="s">ddd</div>
</body>
</html>本文出自 “singsong” 博客,请务必保留此出处http://singsong.blog.51cto.com/2982804/1532054
标签:ajax
原文地址:http://singsong.blog.51cto.com/2982804/1532054