#web-framework #web #框架 #CORS #scrappy #资源 #跨域

scrappy-cors

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

1 个不稳定版本

0.0.1 2020年1月19日

#2#scrappy

MIT 许可证

615KB
14K SLoC

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

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

示例

use scrappy_cors::Cors;
use scrappy::{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
~569K SLoC