fn enable_cors<'mw>(_req: &mut Request, mut res: Response<'mw>) -> MiddlewareResult<'mw> {
// Set appropriate headers
res.set(AccessControlAllowOrigin::Any);
res.set(AccessControlAllowMethods(vec![
Method::Get,
Method::Post,
Method::Options,
Method::Delete,
])
);
res.set(AccessControlAllowHeaders(vec![
// Hyper uses the `unicase::Unicase` type to ensure comparisons are done
// case-insensitively. Here, we use `into()` to convert to one from a `&str`
// so that we don't have to import the type ourselves.
"Origin".into(),
"X-Requested-With".into(),
"Content-Type".into(),
"Accept".into(),
]));
// Pass control to the next middleware
res.next_middleware()
}
pub fn enable_options_preflight<'mw>(_req: &mut Request, mut res: Response<'mw>) -> MiddlewareResult<'mw> {
// Set HTTP 200.
// ContentType should be text/plain.
res.set(Ok)
.set(ContentType::plaintext());
// Just "ok" as response text.
res.send("Ok")
}
srv.options("**/*", middlewares::enable_options_preflight);