developit / developit/redaxios
Response Parsing Error when Status Code is 204 (No Content)
- Dominant language
- JavaScript
- Stars
- 4.9k
- Forks
- 104
- PR merge metrics
- No merged PRs in 30d
Description
**Problem:**
Currently, the response from an HTTP request is being parsed, regardless of the status code. This behavior leads to the following error in the browser's debugger menu: `"SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data"` when the status code is 204 (No Content). The error is triggered in Firefox.
**Expected Behavior:**
The parsing of the response data should only occur when the status code is not 204. When the status code is 204, the response should be left unparsed.
**Steps to Reproduce:**
1. Perform an HTTP request that returns a status code of 204.
2. Observe the error in the browser's debugger menu.
**Code Segment:**
```js
return res[options.responseType || 'text']()
.then((data) => {
response.data = data;
// its okay if this fails: response.data will be the unparsed value:
response.data = JSON.parse(data);
})
.catch(Object)
.then(() => {
const ok = options.validateStatus ? options.validateStatus(res.status) : res.ok;
return ok ? response : Promise.reject(response);
});
```
**Possible Solution:**
To resolve this issue, you could modify the code to conditionally parse the response data based on the status code.
**Additional Information:**
- Browser/Environment: `Firefox`
- Redaxios Version: `0.5.1`
Contributor guide
Assessment
This issue has not been assessed yet.