developit / developit/redaxios

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

Aperta
#96 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
4.9k
Fork
104
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**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`

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start with the response-handling code segment that calls res[options.responseType || 'text']() and then JSON.parse(data); reproduce an HTTP request returning status 204 in Firefox. Done means a 204 response is left unparsed and no JSON.parse syntax error appears, while other responses retain their existing behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
api
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.