XMLHttpRequest接受chunked编码传输的HTTP Response时有问题
实际中遇到的问题,虽然没有最终解决,但是浪费了好长事件,记录下来,避免再次踩坑。
现在前端框架发送Ajax请求时,大部分组件最终都是调用的XMLHttpRequest对象来发送和接受请求。
使用XMLHttpRequest接受流式chunked编码的数据时(Transfer-Encoding: chunked),出现了如下问题:
响应的Content-Type | 谷歌浏览器 | 火狐浏览器 |
未设置 | 接收到1k左右的内容后才会触发 onprogress事件 | 接收到第一次内容后就触发onprogress事件 |
text/plain | 接收到1k左右的内容后才会触发 onprogress事件 | 接收到第一次内容后就触发onprogress事件 |
application/octet-stream | 接收到第一次内容后就触发onprogress事件 | 接收到第一次内容后就触发onprogress事件 |
text/event-stream | 接收到第一次内容后就触发onprogress事件 | 接收到第一次内容后就触发onprogress事件 |