@@ -1399,6 +1399,13 @@ async fn serve_req(ctx: Arc<Server>, req: Request) -> Result<Response, ServerErr
1399
1399
return Ok ( Response :: new ( hyper:: Body :: from ( "no data yet, please wait" ) ) ) ;
1400
1400
}
1401
1401
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
+
1402
1409
let fs_path = format ! (
1403
1410
"site/static{}" ,
1404
1411
if req. uri( ) . path( ) == "" || req. uri( ) . path( ) == "/" {
@@ -1651,10 +1658,20 @@ async fn run_server(data: Arc<RwLock<Option<Arc<InputData>>>>, addr: SocketAddr)
1651
1658
Ok :: < _ , hyper:: Error > ( hyper:: service:: service_fn ( move |req| {
1652
1659
let start = std:: time:: Instant :: now ( ) ;
1653
1660
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
+ } )
1658
1675
} ) )
1659
1676
}
1660
1677
} ) ;
0 commit comments