JHipster-Angular 5:使用来自其他模块的服务最终得到状态码:401 Unauthorized

时间:2018-05-13 17:54:10

标签: angular service lazy-loading jhipster

我试图从另一个Lazy-Loaded功能模块中为其中一个实体重用现有(生成的)服务。

我所做的只是在功能模块中导入包含服务的模块。 e.g。

@NgModule({ 
    imports: [ 
        Module1,
        Module2,
        ServiceModule 
    ]
})

ServiceModule 中有以下内容:

@NgModule({
    providers: [
        MyService
    ]
})

但是在我的LazyLoadedModule中的组件中注入 MyService 时 使用其中一种方法给我状态代码:401 Unauthorized。 使用的身份验证方法是JWT令牌,它由JHipster默认代码处理,通过将它们存储在浏览器中。 该服务可以简单地调用后端API,我使用邮递员测试它并且工作正常。

如果我在延迟加载的模块中使用服务,所有这一切都不会发生。知道这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

此问题背后的原因是功能模块中缺少 http-interceptors 。 我正在考虑的http拦截器与 app.module 中使用的相同。因此,修复此问题的方法是将以下代码从app.module.ts复制并粘贴到feature.moduele.ts

    case "gemilang/add":
    $contacts = getTable("contacts");
    if($isAdmin) { $assets = getTable("assets"); } else { $assets = getTableFiltered("assets","clientid",$liu['clientid']); }
    $clients = getTable("clients");
    $cabang_gemilang = getTable("cabang_gemilang");
    $ldap = getTable("ldap");
    $admins = getTableFiltered("people","type","admin");
    if($isAdmin) { $users = getTableFiltered("people","type","user"); } else { $users = getTableFiltered("people","type","user","clientid",$liu['clientid']); }
    break;