#rust #actix-web #rust-actix
#Ржавчина #actix-web
Вопрос:
Я пытаюсь создать простой серверный сервер с помощью Rust, но я продолжаю сталкиваться с ошибкой CORS.
Мой интерфейс react говорит:
Access to XMLHttpRequest at 'http://127.0.0.1:3002/auth' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Вот мой внутренний код:
// Route Config //
pub fn routes(cfg: amp;mut web::ServiceConfig) {
cfg.route("/auth", web::get().to(auth_handler));
}
// Handler Config //
async fn auth_handler() -> impl Responder {
HttpResponse::Ok().json("Works")
}
#[actix_rt::main]
async fn main() -> io::Result<()> {
let app = move || App::new().configure(routes);
let _cors = Cors::permissive();
HttpServer::new(app).bind("127.0.0.1:3002")?.run().await
}
Насколько я понимаю, функция CORS ::permissive() должна позволять работать всем межсайтовым взаимодействиям. Я неправильно понял документы или я неправильно их реализовал?
Ответ №1:
Вам действительно нужно использовать Cors
промежуточное программное обеспечение в вашем App
via .wrap()
:
let app = move || App::new().wrap(Cors::permissive()).configure(routes);
// ^^^^^^^^^^^^^^^^^^^^^^^^^
Подробнее о его настройке здесь .
Комментарии:
1. Это работает! Спасибо за быстрый ответ