From 2483ed5a0889eeea785d5d8f767dc24784d238ff Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Wed, 8 Apr 2026 02:23:37 +0200 Subject: [PATCH] feat(api): add CORS middleware for browser fetch --- crates/api/src/main.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/api/src/main.rs b/crates/api/src/main.rs index 6256efd..18395f7 100644 --- a/crates/api/src/main.rs +++ b/crates/api/src/main.rs @@ -1,8 +1,9 @@ mod routes; -use axum::{routing::post, Router}; -use routes::tabs::{parse_tab, AppState}; +use axum::{Router, routing::post}; +use routes::tabs::{AppState, parse_tab}; use std::sync::Arc; +use tower_http::cors::{Any, CorsLayer}; use ug_parser::{UgHtmlParser, UgTabFetcher}; #[tokio::main] @@ -14,11 +15,17 @@ async fn main() { parser: Box::new(UgHtmlParser), }); + let cors = CorsLayer::new() + .allow_origin(Any) + .allow_methods(Any) + .allow_headers(Any); + let app = Router::new() .route("/tabs/parse", post(parse_tab)) + .layer(cors) .with_state(state); - let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); + let listener = tokio::net::TcpListener::bind("0.0.0.0:8000").await.unwrap(); tracing::info!("listening on {}", listener.local_addr().unwrap()); axum::serve(listener, app).await.unwrap(); }