我想为Access-Control-Allow-Origin: *
我的应用程序将做出的每一个响应添加。
根据文档,AfterMiddleware
正是为此
在常见情况下,Chain 的 Handler 会生成完整的响应,AfterMiddleware 只需对该响应进行后处理,例如添加标头或日志记录。
所以我试着像这样使用它:
struct CorsMiddleware;
impl AfterMiddleware for CorsMiddleware {
fn after(&self, req: &mut Request, res: Response) -> IronResult<Response> {
res.headers.set(hyper::header::AccessControlAllowOrigin::Any);
Ok(res)
}
}
但我得到了错误cannot borrow immutable field "res.headers" as mutable
。我不确定这是否是由不可变Response
变量类型引起的,但由于这是特征函数签名,我无法更改它。那么,我应该如何改变不可变的东西呢?如果可能的话,复制整个响应只是为了添加一个标题会很奇怪。