创建 XMLHttpRequest 对象; 设置请求行;设置请求头(针对 post 请求);设置请求体;接收响应数据
/* 创建 XMLHttpRequest 对象 ;XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新 */ // var xhr = new XMLHttpRequest(); var xhr = null; // 检查浏览器是否支持 XMLHttpRequest 对象 if(window.XMLHttpRequest){ // 若支持则创建 XMLHttpRequest 对象 // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xhr = new XMLHttpRequest(); }else { // 若不支持创建 ActiveXObject // IE6, IE5 浏览器执行代码 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } // 设置请求行,向服务器发送请求;用于说明XMLHttpRequest对象要从哪里获取数据.通常可以是网站中的数据,也可以是本地中其他文件中的数据。 // open(method,url,async);规定请求的类型、URL 以及是否异步处理请求。 // method:请求的类型;GET 或 POST; // url:文件在服务器上的位置; // async:true(异步)或 false(同步) xhr.open('GET','http://ajax.com/phpFile/time.php',true); // post 请求需要设置请求头 // xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // 设置请求体; // send(string); 将请求发送到服务器。string:仅用于 POST 请求 xhr.send(null); // get请求参数可不填或置空 /* 设置响应HTTP请求状态变化的函数 */ // onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 xhr.onreadystatechange = function(){ // 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。 // 0: 请求未初始化,1: 服务器连接已建立,2: 请求已接收,3: 请求处理中,4: 请求已完成,且响应已就绪 // console.log(this.readyState); if(this.readyState != 4) return; // 获得来自服务器,字符串形式的响应数据。 console.log(this.responseText); }