Skip to content

Commit 7144464

Browse files
Always set CORS to *
Also handle OPTIONS requests as okay.
1 parent 5a1f928 commit 7144464

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

site/src/server.rs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,6 +1399,13 @@ async fn serve_req(ctx: Arc<Server>, req: Request) -> Result<Response, ServerErr
13991399
return Ok(Response::new(hyper::Body::from("no data yet, please wait")));
14001400
}
14011401

1402+
if req.method() != http::Method::OPTIONS {
1403+
return Ok(http::Response::builder()
1404+
.status(StatusCode::NO_CONTENT)
1405+
.body(hyper::Body::empty())
1406+
.unwrap());
1407+
}
1408+
14021409
let fs_path = format!(
14031410
"site/static{}",
14041411
if req.uri().path() == "" || req.uri().path() == "/" {
@@ -1651,10 +1658,20 @@ async fn run_server(data: Arc<RwLock<Option<Arc<InputData>>>>, addr: SocketAddr)
16511658
Ok::<_, hyper::Error>(hyper::service::service_fn(move |req| {
16521659
let start = std::time::Instant::now();
16531660
let desc = format!("{} {}", req.method(), req.uri());
1654-
serve_req(ctx.clone(), req).inspect(move |r| {
1655-
let dur = start.elapsed();
1656-
info!("{}: {:?} {:?}", desc, r.as_ref().map(|r| r.status()), dur)
1657-
})
1661+
serve_req(ctx.clone(), req)
1662+
.inspect(move |r| {
1663+
let dur = start.elapsed();
1664+
info!("{}: {:?} {:?}", desc, r.as_ref().map(|r| r.status()), dur)
1665+
})
1666+
.map(|mut r| {
1667+
if let Ok(r) = &mut r {
1668+
r.headers_mut().insert(
1669+
hyper::header::ACCESS_CONTROL_ALLOW_ORIGIN,
1670+
hyper::header::HeaderValue::from_static("*"),
1671+
);
1672+
}
1673+
r
1674+
})
16581675
}))
16591676
}
16601677
});

0 commit comments

Comments
 (0)