Comments (2)
Hi,
The problem starts here:
- https://github.com/vercel/next.js/blob/canary/examples/blog-with-comment/lib/fetchComment.ts#L29
- For completeness sake that code is invoked in this API handler, https://github.com/vercel/next.js/blob/canary/examples/blog-with-comment/pages/api/comment.ts
We are hitting that line in the API route. Notably that returns a 400 with JSON payload.
Then when we SWR is used here:
We hit the second issue. fetch
doesn't throw for 4xx range requests. A library such as axios
does throw/error out for non 2xx status codes (let's not think of 3xx for now).
So when the fetcher
does:
const fetcher = (url) => fetch(url).then((res) => res.json());
It'll simply decode the error message with error 400 we sent from the API route, and then pass that SWR, which puts it in the data state.
So comments
is no longer an Array, but an Object, and you can see that if you debug the application:
![Screenshot 2024-02-14 at 09 03 43](https://private-user-images.githubusercontent.com/21013447/304663316-29a2dc2a-cf1d-4b3f-862e-779aeb7a9f43.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTcwMjc5MzEsIm5iZiI6MTcxNzAyNzYzMSwicGF0aCI6Ii8yMTAxMzQ0Ny8zMDQ2NjMzMTYtMjlhMmRjMmEtY2YxZC00YjNmLTg2MmUtNzc5YWViN2E5ZjQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA1MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNTMwVDAwMDcxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyNDcwZDg3NWU0ZjJkNDdjMjZjNzA3ZTg2MzI0ZWZmY2IxNDQyY2I2NTUzOGRlMDM0ZGZjZjZhYTY2N2Y2ZTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.e6x_efDD7a6EF81rWSNkmaK2QQwmTiXSBGOeANHlcrE)
And we can confirm our assumptions by looking at the network tab, where we see a 400 Bad Request, from
https://blog-with-comment.vercel.app/api/comment?url=%2Fapi%2Fcomment
I'll make a PR to fix this, so that it throws when 400 comes in.
from next.js.
This closed issue has been automatically locked because it had no new activity for 2 weeks. If you are running into a similar issue, please create a new issue with the steps to reproduce. Thank you.
from next.js.
Related Issues (20)
- Docs: .optimizePackageImports is showing compression docs HOT 1
- environment variable cannot be read intermittently in getServerSideProps HOT 3
- Next 14.2.3 App Router + SSG: The not-found pages are re-built again for every regular page
- [Breaking] NextJs [14.2.3] Draft mode with static pages HOT 6
- NextJs [14.2.3] MaxListenersExceededWarning appears when using Draft Mode
- Please stop auto closing bugs like #50388! Don't put all the burden on reporters HOT 1
- Fast Refresh Failing to Work on New Project HOT 3
- NextJS 14 HMR Tailwind CSS reloading not working HOT 3
- app router - dynamic twitter card image generator file does not return anything if returned div has style: justifyContent: "end". HOT 4
- Docs: Misleading and potentially vulnerable example code of getting client's IP address HOT 4
- Error name is always overridden with "Error" HOT 1
- Problem with postcss transformation when importing css with layer HOT 1
- ReactRemoveProperties dosen't work as it was
- Turbopack dev server and HMR consuming too much memory and freezing at code changes.
- TypeError: Failed to parse URL from /api/images HOT 7
- Vercel + pages router + basePath + middleware - Full roundtrip when client navigating to index page HOT 2
- Refractor languages missing when Turbopack is enabled
- "trailingSlash" causing CORS errors HOT 1
- Version 15 breaks select form element
- Docs: Versioned Documentation HOT 3
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.