diff --git a/brainz_req.js b/brainz_req.js
index 7bc5ec5..d9fe3f8 100644
--- a/brainz_req.js
+++ b/brainz_req.js
@@ -12,51 +12,45 @@ function generate_results() {
let queryURL = `https://musicbrainz.org/ws/2/artist?query=${artist}&limit=1`;
console.log(queryURL);
- // 1. Making the query using fetch
- fetch(queryURL)
- .then(response => {
- if (!response.ok) {
- throw new Error("Network response was not ok");
- }
- return response.text();
- })
- .then(data => {
- // 2. Data parsing
- let parser = new DOMParser();
- let xmlDoc = parser.parseFromString(data, "application/xml");
+ // 1. Making the query using AJAX
+ let xmlHttp = new XMLHttpRequest();
+ xmlHttp.open("GET", queryURL, true);
+ xmlHttp.send();
- let artistNode = xmlDoc.querySelector("artist");
- if (artistNode) {
- let id = artistNode.getAttribute("id");
+ xmlHttp.onreadystatechange = function () {
+ if (xmlHttp.readyState == 4) {
+ if (xmlHttp.status == 200) {
+ // 2. Data parsing
+ let data = xmlHttp.responseXML;
+ let id = data.querySelector("artist").getAttribute("id");
console.log(id);
let releaseUrl = `https://musicbrainz.org/ws/2/artist/${id}?inc=release-groups`;
- // Fetch the release data
- return fetch(releaseUrl);
+ // Making a second AJAX request for release data
+ let releaseRequest = new XMLHttpRequest();
+ releaseRequest.open("GET", releaseUrl, true);
+ releaseRequest.send();
+
+ releaseRequest.onreadystatechange = function () {
+ if (releaseRequest.readyState == 4) {
+ if (releaseRequest.status == 200) {
+ // 3. Data parsing for release data
+ let releaseData = releaseRequest.responseXML;
+ let releaseList = releaseData.querySelectorAll("release-group");
+ let table = createResultTable(releaseList);
+ document.body.appendChild(table);
+ } else {
+ console.error("Failed to fetch release data");
+ // Handle error here
+ }
+ }
+ };
} else {
- throw new Error("Artist not found.");
+ console.error("Failed to fetch artist data");
+ // Handle error here
}
- })
- .then(response => {
- if (!response.ok) {
- throw new Error("Network response was not ok");
- }
- return response.text();
- })
- .then(data => {
- // 3. Data parsing for release data
- let parser = new DOMParser();
- let xmlDoc = parser.parseFromString(data, "application/xml");
-
- let releaseList = xmlDoc.querySelectorAll("release-group");
- let table = createResultTable(releaseList);
- document.body.appendChild(table);
- })
- .catch(error => {
- console.error(error);
- // Display an error message to the user
- document.innerHTML = "An error occurred while fetching artist information.";
- });
+ }
+ };
}
}
@@ -68,7 +62,7 @@ function createResultTable(releaseList) {
let cell = row.insertCell(0);
cell.innerHTML = "Release";
cell = row.insertCell(1);
- cell.innerHTML = "Release DateRelease Date";
for (let release of releaseList) {
let releaseTitle = release.querySelector("title").textContent;