- From: Ethan Arrowood <notifications@github.com>
- Date: Sat, 26 Jun 2021 15:17:23 -0700
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/1260@github.com>
While working on [undici-fetch](), a Node.js based implementation of Fetch, a developer discovered an issue where non string header values were throwing errors. Specifically, an array of strings `headers.append('key', ['val1', 'val2'])`. Based on the spec, values are first normalized: > To normalize a potentialValue, remove any leading and trailing HTTP whitespace bytes from potentialValue. Then, a TypeError should be thrown if value is not a value > A value is a byte sequence that matches the following conditions: > Has no leading or trailing HTTP tab or space bytes. > Contains no 0x00 (NUL) or HTTP newline bytes. I assumed that values had to be strings. But based on the behavior of the fetch api in Chrome and Firefox, it seems like the value is stringified and then normalized/validated. Can we update the spec to include this stringification step? And of course be specific about how we stringify the value? We found some similar interesting behavior such as: ``` headers.append('key') // throws headers.append('key', undefined) // fine undefined is stringified as 'undefined' ``` Related: - https://github.com/Ethan-Arrowood/undici-fetch/pull/61 - https://github.com/Ethan-Arrowood/undici-fetch/issues/60 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/fetch/issues/1260
Received on Saturday, 26 June 2021 22:17:36 UTC