标签: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