From 35e14e4f5e98719d5db1ac9cba46cdeefc3d3f00 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Wed, 12 Feb 2020 06:20:05 +0100 Subject: Bookmark submission: Fetch page info through back end. CORS prevents us from fetch the target page directly. This patch makes the front end use the back end to fetch it instead. Change-Id: I2d33a68d00b6ce1bb7a7b8dfcb7687f0bd1fdebd --- .../META-INF/resources/bookmarks/bookmarkList.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/main/resources/META-INF') diff --git a/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js b/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js index 11c4b10..4c8287a 100644 --- a/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js +++ b/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js @@ -1,5 +1,6 @@ document.addEventListener('DOMContentLoaded', () => { - let bookmarkSubmissionPane = document.getElementById('bookmark-submission-pane'); + let bookmarkSubmissionPane = document.getElementById( + 'bookmark-submission-pane'); let titleInput = document.getElementById('title-input'); let uriInput = document.getElementById('uri-input'); let uriSpinner = document.getElementById('uri-spinner'); @@ -9,7 +10,10 @@ document.addEventListener('DOMContentLoaded', () => { uriInput.addEventListener('blur', async () => { uriSpinner.hidden = false; uriSpinner.playing = true; - let r = await fetch(uriInput.value); + let searchParams = new URLSearchParams({'uri': uriInput.value}); + console.log(`/bookmarks/page-info?${searchParams}`); + let fetchUrl = new URL(`/bookmarks/page-info?${searchParams}`, document.URL); + let r = await fetch(fetchUrl); uriSpinner.hidden = true; uriSpinner.playing = false; @@ -17,14 +21,8 @@ document.addEventListener('DOMContentLoaded', () => { return; } - let html = await r.text(); - let parser = new DOMParser(); - let doc = parser.parseFromString(html, "text/html"); - let titles = doc.getElementsByTagName('title'); - if (titles.length <= 0) { - return; - } - titleInput.value = titles[0].innerText; + let pageInfo = await r.json(); + titleInput.value = pageInfo.title; }); }); -- cgit v1.2.3