You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My back-end returns JSON data with a content-header that contains the suffix +json'and the charset=utf-8'
The content-type is not recognized as JSON and the body is returned as a plain string instead of JSON.
The problem is the way that the Content-Type header is parsed: Content-Type: application/whatever+json;charset=utf-8
This is the method for parsing the header (and the body):
protected parseBody(response: FetcherResponse): Promise<object | string> {
const contentType = response.headers.get('Content-Type');
const contentLength = response.headers.get('Content-Length');
if (
// As one might expect, a "204 No Content" is empty! This means there
// isn't enough to `JSON.parse`, and trying will result in an error.
response.status !== 204 &&
contentLength !== '0' &&
contentType &&
(contentType.startsWith('application/json') ||
contentType.endsWith('+json'))
) {
return response.json();
} else {
return response.text();
}
}
The condition for checking on JSON fails, because: contentType.endsWith('+json')
is false in the case that there is a charset defined at the end of the header
The text was updated successfully, but these errors were encountered:
My back-end returns JSON data with a content-header that contains the suffix
+json
'and thecharset=utf-8'
The content-type is not recognized as JSON and the body is returned as a plain string instead of JSON.
The problem is the way that the
Content-Type
header is parsed:Content-Type: application/whatever+json;charset=utf-8
This is the method for parsing the header (and the body):
The condition for checking on JSON fails, because:
contentType.endsWith('+json')
is
false
in the case that there is a charset defined at the end of the headerThe text was updated successfully, but these errors were encountered: