diff --git a/public/app/core/services/backend_srv.ts b/public/app/core/services/backend_srv.ts index f523fb19314..d26fcbd4905 100644 --- a/public/app/core/services/backend_srv.ts +++ b/public/app/core/services/backend_srv.ts @@ -20,7 +20,12 @@ import { getConfig } from 'app/core/config'; import { DashboardSearchHit } from 'app/features/search/types'; import { FolderDTO } from 'app/types'; import { ContextSrv, contextSrv } from './context_srv'; -import { parseInitFromOptions, parseResponseBody, parseUrlFromOptions } from '../utils/fetch'; +import { + isContentTypeApplicationJson, + parseInitFromOptions, + parseResponseBody, + parseUrlFromOptions, +} from '../utils/fetch'; import { isDataQuery, isLocalUrl } from '../utils/query'; import { FetchQueue } from './FetchQueue'; import { ResponseQueue } from './ResponseQueue'; @@ -187,7 +192,9 @@ export class BackendSrv implements BackendService { mergeMap(async (response) => { const { status, statusText, ok, headers, url, type, redirected } = response; - const data = await parseResponseBody(response, options.responseType); + const responseType = options.responseType ?? (isContentTypeApplicationJson(headers) ? 'json' : undefined); + + const data = await parseResponseBody(response, responseType); const fetchResponse: FetchResponse = { status, statusText,