用于重写XHR响应的MIME类型,因为返回响应的MIME类型决定了XHR对象如何处理它,所以提供一种方法能够重写服务器返回的MIME类型是很有用的。例如:
var xhr=createXHR(); xhr.open(“get”,”text.php”,true); xhr.overrideMineType(“text/xml”); xhr.send(null);
响应接收完毕后将触发load事件,因此也就没有必要去检查readystate属性了,而onload事件处理程序会接收到一个event对象,其target属性就指向xht对象实例。单并非所有浏览器都为这个事件实现了适当的事件对象。
var xhr=createXHR(); xhr.onload=function(){ if((xhr.status>=200&&xhr.status<300)||xhr.status==304){ alert(xhr.responseText); }else{ alert(“request was unsuccessful:”+xhr.status); } }; xhr.open(“get”,”alrevents.php”,true); xhr.send(null);
这个事件会在浏览器接收新数据期间周期性的触发,而onprogress事件处理程序会接收一个event对象,其target属性是XHR对象,但包含着三个额外的属性:lengthComputable、position和totalSize。LengthComputable是一个表示进度信息是否可用的布尔值,position表示已经接收的字节数,totalSize表示根据Content-Length响应头部确定的预期字节数。
var xhr=createXHR(); xhr.onload=function(event){ if((xhr.status>=200&&xhr.status<300)||xhr.status==304){ alert(xhr.responseText); }else{ alert(“Request wa unsuccessful:”+xhr.status); } }; xhr.onprogress-function(event){ var divStatus=document.getElementById(“status”); if(event.lengthComputable){ if(event.lengthComputable){ divStatus.innerHTML=”Received ”+event.position+” of ”+event.totalSize+”bytes”; } } }; xhr.open(“get”,”altevents.php”,true); xhr.send(null);