- Added 204 handling to xhr

This commit is contained in:
Ferdi Koomen 2021-09-27 18:48:31 +02:00
parent f82ccc94dd
commit 691794b6ee
4 changed files with 45 additions and 22 deletions

View File

@ -2,13 +2,20 @@ async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const additionalHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
const defaultHeaders = Object.entries({
Accept: 'application/json',
...defaultHeaders,
...additionalHeaders,
...options.headers,
});
})
.filter(([key, value]) => isDefined(value))
.reduce((headers, [key, value]) => ({
...headers,
[key]: value,
}), {});
const headers = new Headers(defaultHeaders);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);

View File

@ -2,13 +2,20 @@ async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const additionalHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
const defaultHeaders = Object.entries({
Accept: 'application/json',
...defaultHeaders,
...additionalHeaders,
...options.headers,
});
})
.filter(([key, value]) => isDefined(value))
.reduce((headers, [key, value]) => ({
...headers,
[key]: value,
}), {});
const headers = new Headers(defaultHeaders);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);

View File

@ -2,13 +2,20 @@ async function getHeaders(options: ApiRequestOptions): Promise<Headers> {
const token = await resolve(options, OpenAPI.TOKEN);
const username = await resolve(options, OpenAPI.USERNAME);
const password = await resolve(options, OpenAPI.PASSWORD);
const defaultHeaders = await resolve(options, OpenAPI.HEADERS);
const additionalHeaders = await resolve(options, OpenAPI.HEADERS);
const headers = new Headers({
const defaultHeaders = Object.entries({
Accept: 'application/json',
...defaultHeaders,
...additionalHeaders,
...options.headers,
});
})
.filter(([key, value]) => isDefined(value))
.reduce((headers, [key, value]) => ({
...headers,
[key]: value,
}), {});
const headers = new Headers(defaultHeaders);
if (isStringWithValue(token)) {
headers.append('Authorization', `Bearer ${token}`);

View File

@ -1,16 +1,18 @@
function getResponseBody(xhr: XMLHttpRequest): any {
try {
const contentType = xhr.getResponseHeader('Content-Type');
if (contentType) {
const isJSON = contentType.toLowerCase().startsWith('application/json');
if (isJSON) {
return JSON.parse(xhr.responseText);
} else {
return xhr.responseText;
if (xhr.status !== 204) {
try {
const contentType = xhr.getResponseHeader('Content-Type');
if (contentType) {
const isJSON = contentType.toLowerCase().startsWith('application/json');
if (isJSON) {
return JSON.parse(xhr.responseText);
} else {
return xhr.responseText;
}
}
} catch (error) {
console.error(error);
}
} catch (error) {
console.error(error);
}
return null;
}