Javascript 使用XHR和分块传输编码的HTTP POST

Javascript 使用XHR和分块传输编码的HTTP POST,javascript,http,xmlhttprequest,transfer-encoding,Javascript,Http,Xmlhttprequest,Transfer Encoding,我有一个RESTAPI,它通过HTTP Post接受音频文件。API支持传输编码:分块请求头,以便在从客户机上运行的记录器创建文件时,可以将文件分块上传。这样,服务器可以在文件到达时开始处理文件,以提高性能。例如: HTTP 1.1 POST…/v1/processAudio 传输编码:分块 [区块1 256字节](服务器到达时开始处理) [块2 256字节] [块3 256字节] 音频文件通常较短,大小约为10K到100K。我有C#和Java代码可以工作,所以我知道API可以工作。但是,我似

我有一个RESTAPI,它通过HTTP Post接受音频文件。API支持传输编码:分块请求头,以便在从客户机上运行的记录器创建文件时,可以将文件分块上传。这样,服务器可以在文件到达时开始处理文件,以提高性能。例如:

HTTP 1.1 POST…/v1/processAudio

传输编码:分块

[区块1 256字节](服务器到达时开始处理)

[块2 256字节]

[块3 256字节]

音频文件通常较短,大小约为10K到100K。我有C#和Java代码可以工作,所以我知道API可以工作。但是,我似乎无法使用javascript在浏览器中进行录制和上传

以下是我的测试代码,它使用传输编码发送到localhost:


函数streamUpload(){
var blob=新blob(['GmnQPBU+nyRGER4JPAW4DjDQC19D']);
var xhr=new XMLHttpRequest();
//在此处添加任何事件处理程序。。。
xhr.open('POST','/',true);
setRequestHeader(“传输编码”、“分块”);
xhr.send(blob);
}
使用XHR测试分块上传
开始上传

如评论中所述,不允许设置该标题,因为它由用户代理控制

有关完整的标题集,请参见W3C XMLHttpRequest Level 1,并注意,
传输编码
是由用户代理控制的标题之一,以允许其控制传输的这些方面

  • 接受字符集
  • 接受编码
  • 访问控制请求头
  • 访问控制请求方法
  • 联系
  • 内容长度
  • 饼干
  • 库克2
  • 日期
  • DNT
  • 期待
  • 主人
  • 活命
  • 起源
  • 推荐人
  • TE
  • 拖车
  • 传输编码
  • 升级
  • 用户代理
  • 通过
WhatWG Fetch API生活标准中也有类似的列表。

不允许您设置该标题。它由用户代理控制。请在此处查看w3规范:,特别是其中的说明:“上面的头由用户代理控制,以让它控制传输的那些方面”。