developit / developit/redaxios

Response Parsing Error when Status Code is 204 (No Content)

Open
#96 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.