/*! * SAPUI5 * Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. */ import { RequestProperties, ResponseProperties } from "./ajax"; import { addEncodedUrlParameters, parseHeaders } from "./ajaxUtil"; export async function requestBrowser(properties: RequestProperties): Promise { return new Promise(function (resolve) { // Browser // new http request const xhttp = new XMLHttpRequest(); // todo // document github // pull request // manual test // - search request // - chart request // - suggestion request // - hierarchy request // - error without result set // - test csrf renewal // - s/4 // - repoexplorer // - initial duplicate error siutation // - fallback abap_odata, dummy // callback handler xhttp.onreadystatechange = function () { if (xhttp.readyState == 4) { resolve({ data: xhttp.responseText, headers: parseHeaders(xhttp.getAllResponseHeaders()), status: xhttp.status, statusText: xhttp.statusText, }); return; } }; // add url parameters to url const url = addEncodedUrlParameters(properties.url, properties.parameters); // write headers to http request xhttp.open(properties.method, url, true); for (const headerName in properties.headers) { const headerValue = properties.headers[headerName]; xhttp.setRequestHeader(headerName, headerValue); } // send xhttp.send(properties.data); }); }