This commit is contained in:
Jeff Emmett 2024-12-07 15:03:53 -05:00
parent 3006e85375
commit 08175d3a7c
2 changed files with 10 additions and 37 deletions

View File

@ -136,7 +136,16 @@ export class TldrawDurableObject {
room.handleSocketConnect({ sessionId, socket: serverWebSocket }) room.handleSocketConnect({ sessionId, socket: serverWebSocket })
// return the websocket connection to the client // return the websocket connection to the client
return new Response(null, { status: 101, webSocket: clientWebSocket }) return new Response(null, {
status: 101,
webSocket: clientWebSocket,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, UPGRADE',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Credentials': 'true'
}
});
} }
getRoom() { getRoom() {

View File

@ -125,39 +125,3 @@ const router = AutoRouter<IRequest, [env: Environment, ctx: ExecutionContext]>({
// export our router for cloudflare // export our router for cloudflare
export default router export default router
const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Authorization',
'Access-Control-Max-Age': '86400',
};
// Add CORS headers to all responses
function handleCors(request: Request) {
// Handle preflight requests
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: corsHeaders
});
}
return null;
}
// Modify the fetch handler
async function handleRequest(request: Request) {
// Handle CORS preflight
const corsResult = handleCors(request);
if (corsResult) return corsResult;
// Handle the actual request
const response = await router.handle(request);
// Add CORS headers to the response
Object.entries(corsHeaders).forEach(([key, value]) => {
response.headers.set(key, value);
});
return response;
}