- From: David Barratt <notifications@github.com>
- Date: Sat, 17 Sep 2022 06:41:30 -0700
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/1486/1250073926@github.com>
> Can you remind me what ...base ends up doing? Surprisingly, it becomes an _empty_ object. The only way I could convert `Request` to a "plain" object was like this: ```js const base = new Request('https://example.com', { method: 'POST', body: 'hello!', headers: { 'accept': 'text/html' }}); const init = {}; for (const property in base) { init[property] = base[property]; } const request = new Request('https://new.example.com', { ...init, duplex: 'half' }); console.log(request.headers.get('accept')); // text/html console.log(request.url); // https://new.example.com console.log(await request.text()); // https://new.example.com ``` Here are the results: | Browser | Works | Result | | ---------- | ------- | ------- | | Firefox | ❌ | `body` is dropped | Chrome | ✅ | threw an error unless I added the `duplex` option above | | Safari | ✅ | | Deno | ✅ | > The last case looks like a result from the recent changes around upload streams. Yes. That is exactly right. In Chrome <= 104, Chrome had the same behavior as Firefox (dropping the body). Chrome >= 105, the error starts being thrown. I opened a bug here: https://bugs.chromium.org/p/chromium/issues/detail?id=1360943 ---------------------- It seems like there isn't a "clean" way to merge two request objects or even simply override the URL of an existing Request object. -- Reply to this email directly or view it on GitHub: https://github.com/whatwg/fetch/issues/1486#issuecomment-1250073926 You are receiving this because you are subscribed to this thread. Message ID: <whatwg/fetch/issues/1486/1250073926@github.com>
Received on Saturday, 17 September 2022 13:41:43 UTC