keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头

Posted

技术标签:

【中文标题】keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource in keycloak 【发布时间】:2018-01-03 00:29:31 【问题描述】:

我正在点击 Key cloak api http://localhost:8080/auth/realms/**/protocol/openid-connect/token 使用正确的凭据,它可以正常工作但使用错误的凭据

当我添加 cross-origin-allow 时,它给了我预检错误

谁能帮帮我:) PS:使用 CORS 插件一切正常

【问题讨论】:

No 'Access-Control-Allow-Origin' header in Angular 2 app的可能重复 只需在 .htaccess 中设置像 Header set Access-Control-Allow-Origin "*" 这样的标题 提供更好的问题,将有助于获得更好的答案。请看***.com/help/how-to-ask 【参考方案1】:

在我们的设置中,我们使用keycloak.json 来实现karafkeycloak 之间的通信,在这种情况下,有必要添加

"enable-cors": true

到我们的keycloak.json 文件。另见here

【讨论】:

感谢您的回复,我没有使用keycloak.js,我直接调用api,所以我的目录中没有keycloak.json文件【参考方案2】:

您正在向在 locahost:4200 运行的 Angular 应用程序请求 localhost:8080 的资源。

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

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

【讨论】:

你是我们的救星

以上是关于keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章

“Vue”类型上不存在属性“$keycloak”

AJAX 请求获取“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误

请求的资源上不存在“Access-Control-Allow-Origin”标头。这已经在标题中传递了

“请求的资源上不存在‘Access-Control-Allow-Origin’标头。”

请求的资源上不存在“Access-Control-Allow-Origin” - SEMrush API

Express 应用程序中请求的资源上不存在“Access-Control-Allow-Origin”标头