一、关键词:Javascript,XML,XMLHttpRequest
二、XMLHttpRequest
1、创建 var xhr = new XMLHttpRequest();
2、方法
同步请求 Javascript 代码会等到服务器响应之后再继续执行
xhr.open("get" , "example.php" , false); 三个参数分别为发送到请求的类型、请求的URL、是否异步发送请求
xhr.send("null"); 方法接受一个参数,即要作为请求主题发送到数据
xhr,abort(); 取消异步请求
在收到响应后,响应的数据会自动填充XHR对象的属性。
3、相关属性
responseText:响应主体的内容,非XML类型
responseXML:响应主体的内容,XML类型
status:响应的HTTP状态
statusText:HTTP状态的说明
readyState:表示目前的请求/响应的活动阶段
readyState值 | 含义 |
0 | 未初始化。尚未调用open()方法 |
1 | 启动。已经调用open(),尚未调用send() |
2 | 发送。已经调用send(),但尚未收到响应 |
3 | 接收。已经收到部分响应数据 |
4 | 完成。已经接收到全部响应数据,而且已经可以在客户端使用 |
只要readyState属性的值改变,就会触发一次readystatechange事件。注意,必须在调用open()之前指定onreadystatechange事件处理程序
才能确保跨浏览器的兼容性。
4、HTTP头部信息
方法:
setRequestHeader(”MyHeader“,”MyValue“);必须在open()方法调用之后,send()方法调用之前。
getResponseHeader("MyHeader");
三、XMLHttpRequest 2级
1、FormData
var form = document.getElementById("user-info");
xhr.send(new FormData(form));
2、超时设定
xhr.timeout = 1000;
xhr.ontimeout = function(){};
3、进度事件
load事件:响应接收完毕后触发该事件
progress事件:会在浏览器接收新数据期间周期性地触发
四、跨源资源共享
1、默认情况下,XHR对象只能访问与包含它的页面位于同一个域中的资源。CORS(Cross-Origin Resource Sharing)定义了
必须访问跨源资源时,浏览器与服务器如何沟通。基本思想是使用自定义的HTTP头部让浏览器与服务器进行沟通。
发送请求,加入 Origin头部;服务器返回时,加入Access-Control-Allow-Origin头部。
2、图像Ping
3、JSONP(JSON with padding,参数式JSON)是被包含在函数调用中断JSONP