From 92bb7bcf510574d3671bea73836f5930b568863e Mon Sep 17 00:00:00 2001 From: tniezg Date: Mon, 30 Aug 2021 16:26:57 +0200 Subject: [PATCH] Update fetcher to avoid parsing non-JSON responses --- .../spree/utils/create-customized-fetch-fetcher.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/framework/spree/utils/create-customized-fetch-fetcher.ts b/framework/spree/utils/create-customized-fetch-fetcher.ts index eeeb10cae..241d8880b 100644 --- a/framework/spree/utils/create-customized-fetch-fetcher.ts +++ b/framework/spree/utils/create-customized-fetch-fetcher.ts @@ -47,7 +47,18 @@ const createCustomizedFetchFetcher: CreateCustomizedFetchFetcher = ( try { const response: Response = await fetch(request) - const data = await response.json() + const responseContentType = response.headers.get('content-type') + let data + + if ( + !responseContentType || + (!responseContentType.includes('application/json') && + !responseContentType.includes('application/vnd.api+json')) + ) { + data = await response.text() + } else { + data = await response.json() + } if (!response.ok) { // Use the "traditional" approach and reject non 2xx responses.