Fetch with ReadableStream as Request Body

眉间皱痕 提交于 2019-11-26 07:37:25

问题


I\'m trying to use fetch with a ReadableStream. In this example, the ReadableStream should simply repeat \"Some data...\" indefinitely.

fetch(\'/\', {
  method: \'POST\', 
  body: new ReadableStream({
    pull: function(controller) {
      console.log(\'pull called!\');
      controller.enqueue(\'Some data...\');
    }
  })
});

This doesn\'t work. While pull is executed once, no data is sent in the request body.

POST / HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: 0
Origin: https://example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: */*
Referer: https://example.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8

How can I make a ReadableStream (or any kind of stream where I can write dynamic data) usable with fetch?

Alternatively, if this isn\'t yet possible, could you please indicate this? Thank you.

Note: This is a more specific spin-off question from: Method for streaming data from browser to server via HTTP


回答1:


We're working on making this work, see https://github.com/whatwg/fetch/pull/425 for the PR to the Fetch Standard. Once that is done you can expect this to make its way into browsers (slowly).



来源:https://stackoverflow.com/questions/40939857/fetch-with-readablestream-as-request-body

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!