fetch()のPOSTでbodyをReadableStreamにできるか確認するNipp
何をするNipp?
おまけ
以下はallowHTTP1ForStreamingUpload: trueを追加した版。
code:html
<script>
const r = new ReadableStream( {
start(controller) {
controller.close();
}
});
const path = Math.random().toString(36).slice(-8);
const url = https://ppng.io/${path};
fetch(url, {
method: "POST",
body: r,
duplex: "full",
});
(async () => {
const res = await fetch(url);
const text = await res.text()
const readableStreamSupport = text === 'ABC';
console.log(readableStreamSupport, text);
return POST ReadableStream body support: ${readableStreamSupport};
})();
</script>
hr.icon
追記:
web.devにネットワークを使わずに確認できる方法が紹介されていた。 code:js
const supportsRequestStreams = !new Request('', {
body: new ReadableStream(),
method: 'POST',
}).headers.has('Content-Type');
ただしこの方法だとSafariでサポートしているになってしまう。