rustbasic_core/middleware/
cors.rs1use crate::{Request, Response, Next};
2use crate::http::{Method, StatusCode};
3
4pub async fn cors_middleware(req: Request, next: Next) -> Response {
5 if req.method == Method::OPTIONS {
6 return crate::http::Response::builder()
7 .status(StatusCode::OK)
8 .header("access-control-allow-origin", "*")
9 .header("access-control-allow-methods", "GET, POST, PUT, DELETE, OPTIONS")
10 .header("access-control-allow-headers", "*")
11 .body(Vec::new())
12 .unwrap();
13 }
14
15 let mut res: Response = next.run(req).await;
16 let headers = res.headers_mut();
17 headers.insert("access-control-allow-origin", "*".parse().unwrap());
18 headers.insert("access-control-allow-methods", "GET, POST, PUT, DELETE, OPTIONS".parse().unwrap());
19 headers.insert("access-control-allow-headers", "*".parse().unwrap());
20 res
21}