From 499707f94639d2aec019690aa548011a69f41292 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 29 Jun 2026 11:08:53 +0100 Subject: [PATCH] feat: update base URL handling to dynamically use current origin for improved compatibility --- js/main.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/js/main.js b/js/main.js index b05e56f..d02f433 100644 --- a/js/main.js +++ b/js/main.js @@ -28,17 +28,20 @@ if (config.allow_users != "" && config.allow_users != undefined) { // Generate urls base on base_url -if (config.base_url != "" && config.base_url != undefined) { - URLS.base_url = config.base_url; - URLS.exam_query_url = config.base_url + "exam/json"; - URLS.exam_submit_url = config.base_url + "exam/submit"; - URLS.exam_results_url = config.base_url + "cid/"; - URLS.exam_user_results_url = config.base_url + "user/scores"; - URLS.question_feedback_url = config.base_url + "feedback/"; - URLS.question_answer_submit_url = config.base_url + "feedback/answer"; - URLS.login_url = config.base_url + "accounts/login/?next=/rts"; - URLS.logout_url = config.base_url + "accounts/logout/?next=/rts"; +let baseUrl = config.base_url; +if (!baseUrl || baseUrl.includes("localhost") || baseUrl === "/") { + // Dynamically use current origin in browser to prevent Host/Port/CORS mismatches + baseUrl = window.location.origin + "/"; } +URLS.base_url = baseUrl; +URLS.exam_query_url = baseUrl + "exam/json"; +URLS.exam_submit_url = baseUrl + "exam/submit"; +URLS.exam_results_url = baseUrl + "cid/"; +URLS.exam_user_results_url = baseUrl + "user/scores"; +URLS.question_feedback_url = baseUrl + "feedback/"; +URLS.question_answer_submit_url = baseUrl + "feedback/answer"; +URLS.login_url = baseUrl + "accounts/login/?next=/rts"; +URLS.logout_url = baseUrl + "accounts/logout/?next=/rts"; // Override individual urls let urls_to_check = ["exam_query_url", "exam_submit_url",