diff --git a/static/shared/js/api-client.js b/static/shared/js/api-client.js index 05c8bbbb..3111a5f6 100644 --- a/static/shared/js/api-client.js +++ b/static/shared/js/api-client.js @@ -127,18 +127,22 @@ class APIClient { apiLog.info(`Response: ${response.status} ${response.statusText} (${duration}ms)`); - // Parse response + // Parse response (handle 204 No Content gracefully) let data; - try { - data = await response.json(); - apiLog.debug('Response data received:', { - hasData: !!data, - dataType: typeof data, - keys: data ? Object.keys(data) : [] - }); - } catch (parseError) { - apiLog.error('Failed to parse JSON response:', parseError); - throw new Error('Invalid JSON response from server'); + if (response.status === 204) { + data = null; + } else { + try { + data = await response.json(); + apiLog.debug('Response data received:', { + hasData: !!data, + dataType: typeof data, + keys: data ? Object.keys(data) : [] + }); + } catch (parseError) { + apiLog.error('Failed to parse JSON response:', parseError); + throw new Error('Invalid JSON response from server'); + } } // Handle 401 Unauthorized - Just clear tokens, DON'T redirect