作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为我的应用做出的每个响应添加 Access-Control-Allow-Origin: *
。
根据 the docs , AfterMiddleware
正是为此
In the common case, a complete response is generated by the Chain's Handler and AfterMiddleware simply do post-processing of that Response, such as adding headers or logging.
所以我试着像这样使用它:
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)
}
}
但我收到错误消息不能将不可变字段“res.headers”借用为可变字段
。我不确定这是否是由不可变的 Response
变量类型引起的,但由于这是特征函数签名,我无法更改它。那么,我应该如何改变不可变的东西呢?如果可能的话,复制整个响应只是为了添加一个 header 会很奇怪。
最佳答案
最简单的解决方案
use
mut
variable
struct CorsMiddleware;
impl AfterMiddleware for CorsMiddleware {
fn after(&self, req: &mut Request, mut res: Response) -> IronResult<Response> {
res.headers.set(hyper::header::AccessControlAllowOrigin::Any);
Ok(res)
}
}
在 Rust 中,当你是数据的所有者时,你可以对它们做任何事情,所以这应该可以解决你的问题。
关于rust - 如何在 Iron 的 AfterMiddleware 中添加标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36290284/
我想为我的应用做出的每个响应添加 Access-Control-Allow-Origin: *。 根据 the docs , AfterMiddleware 正是为此 In the common ca
我是一名优秀的程序员,十分优秀!