ホームページ > Java > Reactor Netty に CORS を実装するにはどうすればよいですか?

Reactor Netty に CORS を実装するにはどうすればよいですか?

王林
リリース: 2024-02-05 11:57:51
転載
869 人が閲覧しました
質問内容

ご存知のとおり、cors標準には有効性をチェックするために最初にオプションリクエストを送信する機能が含まれているため、ハンドラー内でオプションリクエストの処理を解放することにしましたが、返されるブール値が表示されました。オプションリクエストのみを処理し、runon の残りはスキップします。おそらく、cors ヘルパーリクエストを処理する他の方法をご存知ですか?

public void run() {
    HttpServer.create()
            .host(this.config.getHost())
            .port(this.config.getPort())
            .runOn(eventLoopGroup.newEventLoopGroup())
            .protocol(HttpProtocol.HTTP11)
            .handle((request, response) -> {
                if (request.method().equals(HttpMethod.OPTIONS)) 
                    return response
                        .header("Access-Control-Allow-Origin", "*")
                        .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE")
                        .header("Access-Control-Allow-Headers", "Content-Type, Authorization")
                        .sendHeaders();
                else 
                    ???????
            })
            .route(this.provider::run)
            .bindUntilJavaShutdown(Duration.ofSeconds(30), this::onStart);
}
ログイン後にコピー


正解


誰かが突然必要になった場合は

private @notnull corsconfig getcorsconfig() {
    return corsconfigbuilder.foranyorigin()
            .allownullorigin()
            .allowcredentials()
            .allowedrequestmethods(httpmethod.get, httpmethod.post, httpmethod.delete, httpmethod.put, httpmethod.patch)
            .allowedrequestheaders("content-type", "authorization")
            .build();
}

public void run() {
    httpserver.create()
            .host(this.config.gethost())
            .port(this.config.getport())
            .protocol(httpprotocol.http11)
            .doonconnection(this::handler)
            .route(this.provider::run)
            .binduntiljavashutdown(duration.ofseconds(30), this::onstart);
}

private void addhandler() {
    this.connection.addhandlerlast(new corshandler(getcorsconfig()));
}
ログイン後にコピー

handle() を次のように置き換えて、問題を解決する http サーバーを作成してみてください:

リーリー

この構成の詳細を表示: https://www.php.cn/link/e2a23af417a2344fe3a23e652924091f

以上がReactor Netty に CORS を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート