1
votes

The main function is:

#[actix_rt::main]
async fn main() -> std::io::Result<()> {
    std::env::set_var(
        "RUST_LOG",
        "actix_web=info,actix_server=info"
    );
    env_logger::init();

    let pool = DBConnectionPool::create();

    HttpServer::new(move || {
        let cors = Cors::default()
            .allowed_origin("http://localhost:3000")
            .allowed_methods(vec!["POST", "PUT", "PATCH", "GET", "OPTIONS", "HEAD"]);

        App::new()
            .data(pool.clone())
            .wrap(cors)
            .wrap(middleware::Compress::new(ContentEncoding::Br))
            .wrap(middleware::Logger::default())
            .service(web::scope("/users").configure(apps::users::routes::init_routes))
    })
    .bind(Env::get("HOST"))?
    .run()
    .await
}

I try to send OPTIONS request from Postman and everything is OK: request from postman

But from the browser I get the error: request from browser

Screen from browser network tab: network tab

Maybe I dont understand something. Could anybody help me?

I use react frontend.

1

1 Answers

6
votes

For my localhost I tried to use this:

let cors = Cors::permissive();

And it is working.