omni_orchestrator/
cors.rs1use rocket::{Request, Response, fairing::{Fairing, Info, Kind}, http::Header};
2
3pub struct CORS;
4
5#[rocket::async_trait]
6impl Fairing for CORS {
7 fn info(&self) -> Info {
8 Info {
9 name: "Add comprehensive CORS headers to responses",
10 kind: Kind::Response,
11 }
12 }
13
14 async fn on_response<'r>(&self, _request: &'r Request<'_>, response: &mut Response<'r>) {
15 response.set_header(Header::new("Access-Control-Allow-Origin", "*"));
16 response.set_header(Header::new(
17 "Access-Control-Allow-Methods",
18 "GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD",
19 ));
20 response.set_header(Header::new(
21 "Access-Control-Allow-Headers",
22 "Authorization, Content-Type, Accept, Origin, X-Requested-With",
23 ));
24 response.set_header(Header::new("Access-Control-Allow-Credentials", "true"));
25 response.set_header(Header::new("Access-Control-Max-Age", "86400"));
26 }
27}
28
29#[options("/<_..>")]
30pub fn cors_preflight() -> &'static str {
31 ""
32}