Schreibende Aufrufe aus dem Frontend (POST/PATCH/DELETE auf /repo-configs und /agents) schicken X-Admin-Key und Content-Type: application/json. Beides macht aus dem fetch() einen preflighted request: Der Browser fragt zuerst per OPTIONS nach. Fuer OPTIONS war aber keine Route registriert, der Router warf daher MethodNotAllowedException (405), und ausserdem fehlte Access-Control-Allow-Headers fuer den X-Admin-Key. Der Browser sendete den eigentlichen POST damit nie und das Modal meldete nur "Netzwerkfehler beim Abrufen der Ressource" - Lesen funktionierte, weil GET ohne Custom-Header ein simple request ohne Preflight ist. Application::handle() beantwortet OPTIONS jetzt vor dem Routing mit 204, und Response::send() liefert Allow-Methods, Allow-Headers und Max-Age mit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Auth | ||
| Controller | ||
| Db | ||
| Http | ||
| Realtime | ||
| Repository | ||
| Sync | ||
| Application.php | ||
| Config.php | ||