diff --git a/synapse/http/server.py b/synapse/http/server.py index ce9d5630df2..e87842f0c7e 100644 --- a/synapse/http/server.py +++ b/synapse/http/server.py @@ -973,6 +973,11 @@ def set_cors_headers(request: "SynapseRequest") -> None: request.setHeader( b"Access-Control-Allow-Methods", b"GET, HEAD, POST, PUT, DELETE, OPTIONS" ) + + # Allow browsers to cache preflight responses for 10 minutes + if request.method == b"OPTIONS": + request.setHeader(b"Access-Control-Max-Age", b"600") + if request.path is not None and ( request.path == b"/_matrix/client/unstable/org.matrix.msc4108/rendezvous" or request.path.startswith(b"/_synapse/client/rendezvous")