From 7830e3ab6c4210ad6eb2aba18cbe75b40ed1bbd8 Mon Sep 17 00:00:00 2001 From: Eugen Neuber <eugen.neuber@tugraz.at> Date: Mon, 16 Sep 2019 08:58:10 +0200 Subject: [PATCH] Again check for errors in readyState==4 only --- packages/common/jsonld.js | 54 ++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/packages/common/jsonld.js b/packages/common/jsonld.js index c7b9e6c6..2109d5b0 100644 --- a/packages/common/jsonld.js +++ b/packages/common/jsonld.js @@ -84,32 +84,34 @@ export default class JSONLD { docXhr.open("GET", apiDocUrl, true); docXhr.setRequestHeader("Content-Type", "application/json"); docXhr.onreadystatechange = function () { - if (docXhr.readyState === 4 && docXhr.status === 200) { - const json = JSON.parse(docXhr.responseText); - const supportedClasses = json["hydra:supportedClass"]; - - let entities = {}; - const baseUrl = utils.parseBaseUrl(apiUrl); - - // gather the entities - supportedClasses.forEach(function (classData) { - // add entry point url - const entityName = classData["hydra:title"]; - let entryPoint = entryPoints[entityName.toLowerCase()]; - if (entryPoint !== undefined && !entryPoint.startsWith("http")) entryPoint = baseUrl + entryPoint; - classData["@entryPoint"] = entryPoint; - - entities[entityName] = classData; - }); - - const instance = new JSONLD(baseUrl, entities); - instances[apiUrl] = instance; - - // return the initialized JSONLD object - for (const fnc of successFunctions[apiUrl]) if (typeof fnc == 'function') fnc(instance); - successFunctions[apiUrl] = []; - } else { - JSONLD.executeFailureFunctions(apiUrl, i18n.t('jsonld.api-documentation-server', {apiUrl: apiDocUrl})); + if (docXhr.readyState === 4) { + if (docXhr.status === 200) { + const json = JSON.parse(docXhr.responseText); + const supportedClasses = json["hydra:supportedClass"]; + + let entities = {}; + const baseUrl = utils.parseBaseUrl(apiUrl); + + // gather the entities + supportedClasses.forEach(function (classData) { + // add entry point url + const entityName = classData["hydra:title"]; + let entryPoint = entryPoints[entityName.toLowerCase()]; + if (entryPoint !== undefined && !entryPoint.startsWith("http")) entryPoint = baseUrl + entryPoint; + classData["@entryPoint"] = entryPoint; + + entities[entityName] = classData; + }); + + const instance = new JSONLD(baseUrl, entities); + instances[apiUrl] = instance; + + // return the initialized JSONLD object + for (const fnc of successFunctions[apiUrl]) if (typeof fnc == 'function') fnc(instance); + successFunctions[apiUrl] = []; + } else { + JSONLD.executeFailureFunctions(apiUrl, i18n.t('jsonld.api-documentation-server', {apiUrl: apiDocUrl})); + } } }; -- GitLab