#web-framework #actori-web #web #框架 #CORS #资源 #共享

actori-cors

Actori应用程序的跨源资源共享(CORS)

1 个不稳定版本

0.2.0 2020年1月20日

#2#actori-web

MIT/Apache

485KB
11K SLoC

Actori Web框架的CORS中间件 构建状态 codecov 加入https://gitter.im/actori/actori的聊天

文档和社区资源


lib.rs:

Actori应用程序的跨源资源共享(CORS)

CORS中间件可以与应用程序和资源一起使用。CORS中间件可以用作App::wrap()Resource::wrap()Scope::wrap()方法的参数。

示例

use actori_cors::Cors;
use actori_web::{http, web, App, HttpRequest, HttpResponse, HttpServer};

async fn index(req: HttpRequest) -> &'static str {
    "Hello world"
}

fn main() -> std::io::Result<()> {
    HttpServer::new(|| App::new()
        .wrap(
            Cors::new() // <- Construct CORS middleware builder
              .allowed_origin("https://www.rust-lang.net.cn/")
              .allowed_methods(vec!["GET", "POST"])
              .allowed_headers(vec![http::header::AUTHORIZATION, http::header::ACCEPT])
              .allowed_header(http::header::CONTENT_TYPE)
              .max_age(3600)
              .finish())
        .service(
            web::resource("/index.html")
              .route(web::get().to(index))
              .route(web::head().to(|| HttpResponse::MethodNotAllowed()))
        ))
        .bind("127.0.0.1:8080")?;

    Ok(())
}

在这个示例中,为"/index.html"端点注册了自定义的CORS中间件。

CORS中间件自动处理OPTIONS预请求。

依赖项

~27MB
~573K SLoC