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.