Fix syntax error of json.parse: bad parsing #23125
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
There was a bug in packages/react-fetch/src/ReactFetchNode.js.
It's the usage of JSON.parse().
SyntaxError: JSON.parse: bad parsing
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse
How did you test this change?
There was a bug in packages/react-fetch/src/ReactFetchNode.js.
It's the usage of JSON.parse().
For example:
Documents
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse
This was discovered when testing the reactjs/server-components-demo.
fix: JSON.parse fails in react-fetch
fix: JSON.parse fails in react-fetch reactjs/server-components
I created a test code. When I ran it, it threw a SyntaxError.
packages/react-fetch/src/tests/ReactFetchNode-test.js
I used the test code handles different paths as a reference.
The URL for fetch is the concatenation of the serverEndpoint of the test code and the random string banana.
http://localhost:64944/banana
Since it is not an Invalid URL, the status of the response will be as follows.
However, the response will not be in json format, because I have specified a random string banana.
The body of the response will be a string in which the following conditions are true.
Command to run the test code:
Results:
I modified json() as follows. I added catch { }.
If an Error throws, get it with text().
packages/react-fetch/src/ReactFetchNode.js
Passed the test.