2014-10-01 44 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運行良好。