当前位置: 首页 > 知识库问答 >
问题:

KeyCloak:请求的资源上没有“access-control-allow-origin”标头

刘子实
2023-03-14

问题

我设法从我的应用程序进入keycloak登录页面。使用“我的登录详细信息”登录后,出现错误:
-localhost/:1 CORS策略阻止了从源“http://localhost:4200”访问“https://localhost:8080/auth/realms/pwe-realm/protocol/openid-connect/token”的XMLHttpRequest:请求的资源上没有“access-control-allow-origin”标头。
-Keycloak初始化失败Keycloak初始化期间发生错误。

你能帮帮我吗?

我的密钥斗篷配置:

1领域:pwe-realm
2客户端:
-pwe-api(用于我的后端)
-pwe-web(用于我的身份验证前端

pwe-web配置:
客户端协议:openid-connect
访问类型:public
有效的redicrect URI:http//:localhost:4200/(我还尝试了“*”)

我的代码(我正在使用这个librairy:keycloak-angular):

Environments.ts:

import {KeycloakConfig} from 'keycloak-angular';

const keycloakConfig: KeycloakConfig = {
  url: 'https://localhost:8080/auth',
  realm: 'pwe-realm',
  clientId: 'pwe-web'
};

export const environment = {
  production: false,
  keycloakConfig
};

app.moudle.ts

//imports

const keycloakService = new KeycloakService();

@NgModule({
  declarations: [
    AppComponent,
    ...
  ],
  imports: [
    KeycloakAngularModule,
    BrowserModule,
    AppRoutingModule,
    ...
  ],
  providers: [
    {
      provide: KeycloakService,
      useValue: keycloakService,
    }
  ],
  entryComponents: [AppComponent]
})
export class AppModule implements DoBootstrap {
  async ngDoBootstrap(app) {
    const { keycloakConfig } = environment;

    try {
      await keycloakService.init({ config: keycloakConfig });
      app.bootstrap(AppComponent);
    } catch (error) {
      console.error('Keycloak init failed', error);
    }
  }
}

共有1个答案

厍华清
2023-03-14

在使用vue.js对localhost上的服务器进行开发时,我为此浪费了半天时间。

您可能需要为Keycloak客户端在Keycloak服务器上设置Web源:

  1. 登录到Keycloak admin屏幕,选择realm pwe-realm,然后选择您的客户端pwe-web。
  2. 滚动到Web原始设置并键入加号。不要点击(+)按钮,而是直接键入+。这会将上面定义的所有有效重定向URI添加到Web Origins标头中。您还需要将angular应用程序的URI添加到有效重定向URI列表中。
  3. 按屏幕底部的保存。
 类似资料:
  • 问题内容: 我想访问来自同一域但端口号不同的信息,为此,我添加了响应头。 Servlet代码:( 显示在www.example.com:PORT_NUMBER上) jQuery代码:( 显示在www.example.com上) 几次我收到此错误(在控制台中): 该错误通常在执行时首次发生。第二次允许。 我的问题是代码中或代码中缺少什么? 任何建议将不胜感激。 更新1 我变了: 至: 然后我在控制台

  • 问题内容: 我需要通过JavaScript 将数据发送到Python服务器。因为我使用的是localhost,所以我需要使用CORS。我正在使用Flask框架及其模块。 作为JavaScript,我有这个: 和Python代码: 但是当我执行它时,我收到以下消息: 我该如何解决?我知道我需要使用一些“ Access-Control-Allow-Origin”标头,但我不知道如何在此代码中实现它。顺

  • 我已经使用Python EVE框架编写了一个API。当试图从AngularJS应用程序访问API时,它显示了如下所示的错误: 有什么问题吗

  • 我有一个运行在服务器上的API,还有一个连接到它的前端客户端来检索数据。我对跨域问题做了一些研究,并使其工作。然而,我不确定有什么改变。我现在在控制台中收到这个错误: 谢谢你

  • 我在前端使用Angular,在后端使用Java Spring,但是我得到了错误:,而我确信CORS是启用的。这是我的配置文件: 它工作了,我可以毫无问题地完成所有其他请求,但服务中的这个PUT请求给了我一个错误: 这是我的服务器端:

  • 我正在尝试获取一个新闻网站的提要。我想我应该使用Google的feed API将feedburner提要转换为JSON。下面的url将以json格式从提要返回10个帖子。http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/Mathrubhumi 我使用下面的代码来