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
来实现karaf
和keycloak
之间的通信,在这种情况下,有必要添加
"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”标头的主要内容,如果未能解决你的问题,请参考以下文章
AJAX 请求获取“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误
请求的资源上不存在“Access-Control-Allow-Origin”标头。这已经在标题中传递了
“请求的资源上不存在‘Access-Control-Allow-Origin’标头。”