diff --git a/public/src/modules/api.js b/public/src/modules/api.js index bfda975662..db8e0fb1b0 100644 --- a/public/src/modules/api.js +++ b/public/src/modules/api.js @@ -69,18 +69,23 @@ async function xhr(options, cb) { const isJSON = contentType && contentType.startsWith('application/json'); let response; - if (isJSON) { - response = await res.json(); - } else { - response = await res.text(); + if (options.method !== 'head') { + if (isJSON) { + response = await res.json(); + } else { + response = await res.text(); + } } if (!res.ok) { - return cb(new Error(isJSON ? response.status.message : response)); + if (response) { + return cb(new Error(isJSON ? response.status.message : response)); + } + return cb(new Error(res.statusText)); } cb(null, ( - isJSON && response.hasOwnProperty('status') && response.hasOwnProperty('response') ? + isJSON && response && response.hasOwnProperty('status') && response.hasOwnProperty('response') ? response.response : response ));