You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: navigate from the redirect carrier, not a Location string sniff
Server-function redirects arrive as X-Server-Function-Redirect with the
target resolved to an absolute url (solidjs/solid#3102), so the soft/hard
split becomes an origin comparison: same-origin navigates softly with
replace: true (the target takes the submission's place in history, as
HTTP gives a form post), cross-origin hard-navigates. The old branch
decided a redirect's fate by whether its target was spelled absolutely
(solidjs/solid#3107). A locally-produced redirect() still navigates from
its real 3xx + Location; a Location on any other status (a 201's
created-at) is data and never navigates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Navigate from the redirect carrier instead of sniffing Location. Server-function redirects now arrive as `X-Server-Function-Redirect: <status> <resolved-url>` (solidjs/solid#3102), so the soft/hard split is a real origin comparison — same-origin targets navigate softly with `replace: true` (the target takes the submission's place in history, matching HTTP's form-post semantics), anything else hard-navigates — never a guess from how the author spelled the target, which sent relative and absolute spellings down different navigation paths (solidjs/solid#3107). A locally-produced `redirect()` (a client-side action) still navigates from its real 3xx + Location; a `Location` on any other status is the author's data and never navigates.
0 commit comments