From 718bcabea3af5a73c4277384d14f4304d5c83049 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sat, 22 Nov 2025 22:16:50 +0100 Subject: [PATCH] =?UTF-8?q?Verbessere=20die=20Axios-Konfiguration:=20Setze?= =?UTF-8?q?=20die=20Basis-URL=20dynamisch=20basierend=20auf=20der=20Umgebu?= =?UTF-8?q?ng=20und=20verhindere=20Mixed-Content-Probleme=20durch=20Umstel?= =?UTF-8?q?lung=20auf=20HTTPS.=20Aktualisiere=20die=20Men=C3=BC-Datenabfra?= =?UTF-8?q?ge,=20um=20Axios=20f=C3=BCr=20den=20API-Zugriff=20zu=20verwende?= =?UTF-8?q?n=20und=20f=C3=BCge=20Fehlerbehandlung=20hinzu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/axios.js | 16 ++++++++++++++-- src/main.js | 16 ++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/axios.js b/src/axios.js index ac050a3..cad0540 100644 --- a/src/axios.js +++ b/src/axios.js @@ -2,8 +2,20 @@ import axios from 'axios'; import store from './store'; import router from './router'; -axios.defaults.baseURL = process.env.VUE_APP_BACKEND_URL; -console.log(process.env.VUE_APP_BACKEND_URL); +// Basis-URL für das Backend ermitteln +let baseURL = process.env.VUE_APP_BACKEND_URL || '/api'; + +// Mixed-Content vermeiden: wenn die Seite über HTTPS läuft, +// aber die Konfiguration "http://" verwendet, auf "https://" umschalten. +if (typeof window !== 'undefined') { + const isHttps = window.location.protocol === 'https:'; + if (isHttps && baseURL.startsWith('http://')) { + baseURL = baseURL.replace(/^http:/, 'https:'); + } +} + +axios.defaults.baseURL = baseURL; +console.log('Axios baseURL:', baseURL); axios.interceptors.request.use( config => { diff --git a/src/main.js b/src/main.js index 77a7ed0..cd3209a 100644 --- a/src/main.js +++ b/src/main.js @@ -5,15 +5,19 @@ import store from './store'; import axios from './axios'; import './assets/css/editor.css'; +// Menü-Daten über das konfigurierte Axios-Backend laden async function fetchMenuData() { - const backendUrl = process.env.VUE_APP_BACKEND_URL || ''; - const response = await fetch(backendUrl + '/menu-data'); - return await response.json(); + const response = await axios.get('/menu-data'); + return response.data; } -fetchMenuData().then(menuData => { - store.commit('setMenuData', menuData); -}); +fetchMenuData() + .then(menuData => { + store.commit('setMenuData', menuData); + }) + .catch(err => { + console.error('Fehler beim Laden der Menü-Daten:', err); + }); const app = createApp(AppComponent); app.use(router);