在Keycloak中请求的资源上未出现“Access-Control-Allow-Origin”头部信息

3
我正在调用Keycloak API,使用正确的凭据可以正常工作,但是使用错误的凭据会出现问题。API链接为http://localhost:8080/auth/realms/**/protocol/openid-connect/token。
当我添加跨域支持时,它会给我预检错误。请问有谁能帮帮我呢?PS:使用CORS插件一切正常。另外,下面是一个图片描述:enter image description here

可能是重复的问题,参考Angular 2应用中没有“Access-Control-Allow-Origin”头部 - Haseoh
只需在 .htaccess 中设置类似于 Header set Access-Control-Allow-Origin "*" 的标头即可。 - The Hungry Dictator
提供更好的问题,有助于获得更好的答案。请参阅 https://stackoverflow.com/help/how-to-ask - Christian
2个回答

5
您的 Angular 应用正在从 localhost:4200 请求 localhost:8080 上的资源。
为了使其正常工作,您需要在服务器端启用 CORS。因此,您需要将响应头添加到响应中。这可以通过已经提出的 .htaccess 文件来完成。
更好的解决方案(或者可能是最好的解决方案)是在您的 Keycloak 服务器中配置它。您可以在您正在使用的领域中设置允许的来源。只需打开管理控制台,导航到领域设置并设置“Web 来源”。提示已经告诉您可以在此处配置“允许的 CORS 来源”。

Configure allowed CORS origins

为了测试目的,您应该添加http://localhost:4200


1
在我们的设置中,我们使用了一个 keycloak.json 文件来实现 karafkeycloak 之间的通信。在这种情况下,必须添加...
"enable-cors": true

将内容添加到我们的keycloak.json文件中。此外,在这里查看。


1
谢谢您的回复。如我所提到的,我没有使用keycloak.js,而是直接调用API,因此在我的目录中没有keycloak.json文件。 - Nikhil Kapoor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接