2.2 进度事件
新版XMLHttpRequest中最重要的API改进之一是增加了对进度的响应。
XMLHttpRequest Level2用了一个有意义的名字Progress进度来命名进度事件。
3 进阶功能
3.1 结构化的数据
早期版本的postMessage仅支持字符串。后来的版本支持JavaScript对象、canvas imageData和文件等其他数据类型。由于不同浏览器对规范支持的差异,对不同的对象类型的支持情况也不同。
3.2 Framebusting
Framebusting技术可以用来保证某些内容不被加载到jframe中。应用程序首先检测其所在的窗口是否为最外层的窗口(window.top),若不是则跳脱包含它的框架,代码如下所示:
JavaScript Code复制内容到剪贴板
if(window!=window.top)
{
window.top.location=location;
}
3.3二进制数据
支持新的二进制API(如Typed Array)的浏览器可以用XMLHttpRequest来发送二进制数据。Level 2规范支持调用send()方法发送Blob和ArrayBuffer对象
XML/HTML Code复制内容到剪贴板
var a = new Uint8Array([8,6,7,5,3,0,9]); var xhr = new XMLHttpRequest(); xhr.open("POST", "/data/", true); console.log(a); xhr.send(a.buffer);
XMLHttpRequest Level 2也会公开二进制响应数据。将responseType属性值设置为text、document、arraybuffer或blob来控制 有response属性返回的对象类型。如果想要查看HTTP响应体包含的原始字节,需要将responseTyper属性值设为arraybuffer或blob。









