2014-10-01 107 views
0

有什么办法可以使用XMLHttpRequest发送分块请求?使用XHR的分块请求

用例正在将流式数据上传到服务器。我需要能够以较小的块上传二进制数据,但我宁愿避免为每个块发送完整的HTTP请求。

HTTP 1.1规范允许分块请求,但我一直无法在Javascript中找到任何示例。

感谢

回答

0

我不知道,这实现了我的头顶部的库,但你可以使用原始XMLHttpRequest和进度回调。请记住,分块编码会以不可控制的间隔触发浏览器重新绘制,这些间隔根据浏览器而变化。

您可能想看看WebSockets,它们旨在用更方便用户的API来处理这种情况。

+0

感谢您的回复。我知道我可以使用XHR回调来监视来自HTTP服务器的分块响应,但我正在讨论将初始请求的主体发送到小部分,而不是一次发送。 如果XHR不提供此功能,我可以回退到WebSockets,但我很想知道它是否可能。 – n0w 2014-10-01 06:12:03

0

可能的。

您可以设置包含边界的requestHeader "Content-Type: multipart/form-data; boundary=xxxxxxxxxxxx",并使用正确的数据构造一个Buffer对象。

并非所有的浏览器都支持Buffer,所以您应该先测试一下。就我而言,Chrome和Firefox运行良好。