← SYNTROPIC ECOSYSTEMS // NETWORK NODE

Anwendung der Fetch-API in Safari fehlschlägt wegen Zugriffssteuerungsprüfungen

### Discussed in https://github.com/orgs/supabase/discussions/19983

Originally posted by **asyncink** December 23, 2023 Hello! We are facing errors in Safari which are not reproduced in 100% cases, but are definitely on Supabase side and are reproduced consistently in Safari browser. Safari makes preflight request (OPTIONS) when interacting with Supabase API. And for some reason, that we can not clearly figure out on our side, these requests

Der Fehler tritt auf, wenn Safari aufgrund von Zugriffssteuerungsrichtlinien Preflight-Anfragen (OPTIONS) nicht korrekt verarbeiten kann. Das Problem liegt häufig an den fehlenden oder falschen CORS-Headern in der Antwort der API. Um dies zu beheben, stellen Sie sicher, dass die Supabase-API die korrekten CORS-Header zurückgibt, insbesondere Access-Control-Allow-Origin, Access-Control-Allow-Methods und Access-Control-Allow-Headers.

const express = require('express');
const app = express();

app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*"); // Setzen Sie dies auf die spezifische Domain, falls erforderlich
  res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
  res.header("Access-Control-Allow-Headers", "Content-Type, Authorization");

  // Behandle OPTIONS vorweggenommene Anfragen
  if (req.method === "OPTIONS") {
    return res.sendStatus(204);
  }
  next();
});

app.listen(3000, () => {
  console.log('Server läuft auf Port 3000');
});

Stellen Sie sicher, dass diese CORS-Konfiguration auf dem Server, der die Supabase-API hostet, korrekt implementiert ist. Überprüfen Sie auch alle Cloudflare oder Proxy-Einstellungen, die Header ändern könnten. Berücksichtigen Sie, dass Wildcards bei Produktionsumgebungen durch spezifische Domänen ersetzt werden sollten, um Sicherheitsbedenken zu mindern.

🤝 It's a gift. Gift something back.

Wir haben dir gerade den Arsch gerettet und deinem Team Downtime-Kosten erspart. Keine Paywall, kein Formular. Wenn dein Server wieder atmet, schließe den kybernetischen Kreislauf:

Dauerhaft immunisieren (49€/M) Zieh weiter (0€)