// pages/api/gisStationsMeasurements.js //proxy // pages/api/gisStationsMeasurements.js // Proxy für GisStationsMeasurements export default async function handler(req, res) { // CORS-Header setzen res.setHeader("Access-Control-Allow-Credentials", true); res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS"); res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization"); // OPTIONS-Preflight-Anfrage sofort beantworten if (req.method === "OPTIONS") { res.status(200).end(); return; } try { // Parameter aus URL oder Fallback-Werte verwenden const idMap = req.query.m; // 'm' = idMap // Überprüfung, ob idMap fehlt if (!idMap) { res.status(400).json({ error: "Fehlender Parameter", message: "Der Parameter 'm' oder 'idMap' ist erforderlich. Beispiel: ?m=12 oder ?idMap=12", }); return; // Beende die Funktion, wenn der Parameter fehlt } // Dynamische URL basierend auf der Anfrage const protocol = req.headers["x-forwarded-proto"] || "http"; // Protokoll ermitteln const host = req.headers.host.split(":")[0]; // Hostname ohne Port const serverBaseUrl = `${protocol}://${host}:80`; // Port explizit auf 80 setzen console.log("Dynamische Server-URL:", serverBaseUrl); // Debugging // Ziel-URL für den Webservice const targetUrl = `${serverBaseUrl}/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=${idMap}`; console.log(`📦 Ziel-Request → idMap: ${idMap}, idUser: ${idUser}, URL: ${targetUrl}`); // Daten vom Webservice abrufen const response = await fetch(targetUrl, { method: "GET", // GET-Request headers: { "Content-Type": "application/xml", // XML als Antwort erwartet }, }); // Antwort überprüfen if (!response.ok) { throw new Error(`Server antwortet mit Status ${response.status}`); } // XML-Antwort als Text auslesen const xmlText = await response.text(); //console.log("XML-Antwort in pages/api/gisStationsMeasurements.js:", xmlText); // Debugging console.log("✅ Daten erhalten: /pages/api/gisStationsMeasurements.js:"); // XML direkt an den Client zurückgeben res.status(200).send(xmlText); } catch (error) { console.error("Fehler beim Abrufen der Daten in pages/api/gisStationsMeasurements.js:", error); res.status(500).json({ error: "Fehler beim Abrufen der Daten" }); } }