Open lino-levan opened 11 months ago
Server runtimes can't have a concept of "current URL", which is why a number of parts of fetch can't be compliant outside a browser.
Server runtimes can't have a concept of "current URL"
I mean, Deno has --location
but I agree that this is one of the big issues with "spec-compliant" fetch
on the server.
Very late reply, sorry, but node (specifically undici) lets you set a global origin:
import { setGlobalOrigin } from 'undici'
setGlobalOrigin('http://what.ever')
Response.redirect('/home', 307)
This is sort of similar to #9 but I think it has some interesting semantics that might be worth looking into seperately.
The current spec is very clear that
Response.redirect
MUST be resolved against the current url. This is rather unfortunate by itself since server runtimes don't really have a concept of "current url". Outside of that, redirects (especially when paired with status code307
) are incredibly common for stuff like OAuth flows.Currently, doing:
just errors in Node and Deno (without the
--location
flag). The correct way to do this currently iswhich I think is suboptimal. Perhaps this issue should be raised upstream, because this could actually work in a web-standard
Response.redirect
. Ideally,Response.redirect
would just use a relative location for status codes that support it. I'm hoping to champion this change in WinterCG and eventually land it upstream later.