Comments (6)
Interesting... so the problem is not as phrased by the title, thought the problem exists.
One way to see the issue is with the devtools network, and preserve logs, but another is to modify the api endpoint to:
import { NextRequest, NextResponse } from 'next/server';
export const GET = (req: NextRequest) => {
console.log('redirect called', req.nextUrl.searchParams.get('_rsc'));
return NextResponse.json({ hello: 'there' });
};
And now you see, where this is going. When you have the loading
file, Next.js serves that suspense boundary to the client, so Loading
is seen by the client.
Then the framework is making a request for _rsc data to the endpoint, not that this endpoint serves 200 + json, an at the same time the framework is making a request to the endpoint, without the _rsc query.
I'd seem that this PR, #63786, referenced in #57257 should indeed take care of this 🤔
from next.js.
ah nice, what would be a more appropriate title?
from next.js.
I think the issue is still, a Double redirect when using a loading boundary and Route Handlers
From the test I see that, the intention had been to redirect to another page, not a Route Handler.
Though I am not sure I have the time to investigate a whole lot, but the issue is interesting to say the least.
from next.js.
Thanks hopefully a more appropriate title will help attract some more interest, it is slightly different as this issue is present if you redirect to another Page and a route handler. My example was a route handler as that is a cut down version of our use case (We need to do some cookie clean up and that was the only way we could think in the flow we have).
There is a work around that if the redirect is down in a child client component then you do not get the double render. However this is a bit messy and is not ideal
from next.js.
Alright, I see, the odd thing is that the test introduced by #63786 should really be guarding against that... I'll try to run the tests on this machine, to see what's up
from next.js.
Ok, I got them tests running here, and isolated to the test introduced in #63786 plus a router handler test redirect I wrote, and I can see that, the test is making sure the UI doesn't change, because the redirected to page (or my route handler), render with Date.now, so the assumption is made, should you show two different dates to the client, then you definitely did a double redirect, but that's not the entire picture.
I can see that the server makes a request with _rsc
, and one without it, where it'd seem that the UI ignores one, and uses the other, and that makes the test assumption pass.
I'll see if I can change the check to make the test fail.
from next.js.
Related Issues (20)
- Build Error when trying to compile with 'use client' files.
- NextResponse.redirect is not working in middleware HOT 1
- Layout rerenders on same segment route change HOT 4
- Docs: Replace "twitter.com" to "x.com"
- Add option to enable Turbopack with `create-next-app` HOT 6
- Redirect URL not updating correctly in browser after successful redirect HOT 10
- NextUrl pathname return wrong HOT 1
- "edge" runtime is not allowed in pages router getServerSideProps. "experimental-edge" is forced though it shouldn't be. HOT 1
- Triggering notFound in generateMetadata results in Error: NEXT_NOT_FOUND when the delayed notFound call is used (e.g. fetch) HOT 1
- Next.js Compatibility Issues on Chrome 80: Style, useEffect, and Query Problems HOT 1
- Is Middleware need to be cached? HOT 4
- Next throws error when React 19 types (@types/react and @types/react-dom) are installed HOT 2
- Link does not scroll to anchor if it is within Suspense boundary HOT 1
- Link does not scroll to anchor if it is within Suspense boundary
- middleware redirect doesn't change the url on router.refresh() - App Router HOT 1
- next.js >= 14.0.5-canary.59 Fast Refresh had to perform a full reload. HOT 1
- next.js >= 14.0.5-canary.59 Fast Refresh had to perform a full reload HOT 1
- NextNodeServer handleNextImageRequest doens't work as expected with assetPrefix and custom next/image loader
- Returning a string from a page component causes hydration mismatch error HOT 5
- Opentelemetry - Spans for static resources and API pages not part of page load trace
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from next.js.