Actix CORS。从浏览器发送请求的问题
Actix CORS. Problems with sending requests from browser
主要功能是:
#[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
}
我尝试从 Postman 发送 OPTIONS 请求,一切正常:
request from postman
但是我从浏览器收到错误:request from browser
来自浏览器网络选项卡的屏幕:network tab
可能是我有点不明白。有人能帮帮我吗?
我用的是 React 前端。
对于我的本地主机,我尝试使用这个:
let cors = Cors::permissive();
它正在运行。
主要功能是:
#[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
}
我尝试从 Postman 发送 OPTIONS 请求,一切正常: request from postman
但是我从浏览器收到错误:request from browser
来自浏览器网络选项卡的屏幕:network tab
可能是我有点不明白。有人能帮帮我吗?
我用的是 React 前端。
对于我的本地主机,我尝试使用这个:
let cors = Cors::permissive();
它正在运行。