实际中遇到的问题,虽然没有最终解决,但是浪费了好长事件,记录下来,避免再次踩坑。
现在前端框架发送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事件 |