这可能是由于缺少对 Keycloak 服务器的 CORS 配置导致的。在 Keycloak 服务器上设置以下 CORS 配置可以解决此问题:
Keycloak 在主配置文件 standalone.xml 的 中添加以下配置:
如果您的 Keycloak 服务器是以 Standalone 模式运行:
bin/jboss-cli.sh --command="/subsystem=undertow/configuration=filter/custom-filter=keycloak-cors:add(class-name=org.keycloak.services.filters.KeycloakCorsFilter)"
bin/jboss-cli.sh --command="/subsystem=undertow/server=default-server/host=default-host/filter-ref=keycloak-cors:add(predicate=equals(%p, '/auth'), priority=1)"
如果您的 Keycloak 服务器是在开发模式下运行:
bin/jboss-cli.sh --command="/subsystem=undertow/server=default-server/host=default-host/location=\/auth-server-webapp:add(handler=welcome-content)"
bin/jboss-cli.sh --command="/subsystem=undertow/server=default-server/host=default-host/rewrite=http-to-https:add(redirect=permanent, target=https://%H:8543%U)"
bin/jboss-cli.sh --command="/subsystem=undertow/server=default-server/host=default-host/rewrite=rewrite-all:add(from=^((?i)/auth/?.*)$, to=https://%H:8543/auth-server-webapp/$1)"
bin/jboss-cli.sh --command="/subsystem=undertow/server=default-server/host=default-host/filter-ref=keycloak-cors:add(predicate=equals(%p, '/auth') or equals(%p, '/auth/'), priority=1)"