NgRx 在转到导致 CORS 错误的 HTTPS 之前做了一个奇怪的重定向到 HTTP
NgRx does an weird redirect to HTTP before go to HTTPS that's cause an CORS ERROR
我是 ngrx 新手,我想使用 NgRx 数据模块。我在一个堆栈中,Angular/Symfony 托管在 docker 中,使用 Traefik(https 模式)。
我想向名为的路由发出请求:https://xxx.xxxxxx.localhost/operations
这条路线通常会通过 angular 服务向我发送标准用法的操作列表。
但是当我调用这条路由时使用 NgRx 数据模块我有一个 CORS 错误。
NgRx 配置:
在 app.module.ts 中导入并配置我的自定义端点地址:
imports: [
HttpClientModule,
StoreModule.forRoot({}),
StoreRouterConnectingModule.forRoot(),
StoreDevtoolsModule.instrument({
name: 'NgRx demo setup App',
}),
EffectsModule.forRoot([]),
EntityDataModule.forRoot(entityConfig)
],
providers:[
{
provide: DefaultDataServiceConfig,
useValue: {
root: "https://xxx.xxxx.localhost/",
}
}
]
entityConfig.ts :
import {EntityMetadataMap} from '@ngrx/data';
const entityMetadata: EntityMetadataMap = {
Operation: {},
};
export const entityConfig = {
entityMetadata
};
我的操作-service.ts 与 NgRx :
import { Injectable } from '@angular/core';
import {EntityCollectionServiceBase, EntityCollectionServiceElementsFactory} from "@ngrx/data";
import {Operation} from "@models/entities/operation.model";
@Injectable({ providedIn: 'root' })
export class NgxOperationService extends EntityCollectionServiceBase<Operation> {
constructor(serviceElementsFactory: EntityCollectionServiceElementsFactory) {
super('Operation', serviceElementsFactory);
}
}
调用组件:
ngOnInit() {
this._operationServiceX.getAll()
}
在 Chrome 的网络面板中,我看到一个可疑的调用,它在执行我的 CORS 错误:
在它被调用之前 http://api.xxxx.localhost/operations/ that doing a redirect to https://api.xxxx.localhost/operations 我不知道为什么 NgRx 数据首先调用 HTTP 导致我的 CORS 错误。
Capture of network panel in chrome
谁能帮帮我?
这可能不是由 ngrx 数据引起的。
请确保您可以在不使用 ngrx 数据的情况下执行相同的请求。
服务器可能需要接受来自 angular 客户端的请求。
我是 ngrx 新手,我想使用 NgRx 数据模块。我在一个堆栈中,Angular/Symfony 托管在 docker 中,使用 Traefik(https 模式)。
我想向名为的路由发出请求:https://xxx.xxxxxx.localhost/operations 这条路线通常会通过 angular 服务向我发送标准用法的操作列表。
但是当我调用这条路由时使用 NgRx 数据模块我有一个 CORS 错误。
NgRx 配置:
在 app.module.ts 中导入并配置我的自定义端点地址:
imports: [
HttpClientModule,
StoreModule.forRoot({}),
StoreRouterConnectingModule.forRoot(),
StoreDevtoolsModule.instrument({
name: 'NgRx demo setup App',
}),
EffectsModule.forRoot([]),
EntityDataModule.forRoot(entityConfig)
],
providers:[
{
provide: DefaultDataServiceConfig,
useValue: {
root: "https://xxx.xxxx.localhost/",
}
}
]
entityConfig.ts :
import {EntityMetadataMap} from '@ngrx/data';
const entityMetadata: EntityMetadataMap = {
Operation: {},
};
export const entityConfig = {
entityMetadata
};
我的操作-service.ts 与 NgRx :
import { Injectable } from '@angular/core';
import {EntityCollectionServiceBase, EntityCollectionServiceElementsFactory} from "@ngrx/data";
import {Operation} from "@models/entities/operation.model";
@Injectable({ providedIn: 'root' })
export class NgxOperationService extends EntityCollectionServiceBase<Operation> {
constructor(serviceElementsFactory: EntityCollectionServiceElementsFactory) {
super('Operation', serviceElementsFactory);
}
}
调用组件:
ngOnInit() {
this._operationServiceX.getAll()
}
在 Chrome 的网络面板中,我看到一个可疑的调用,它在执行我的 CORS 错误: 在它被调用之前 http://api.xxxx.localhost/operations/ that doing a redirect to https://api.xxxx.localhost/operations 我不知道为什么 NgRx 数据首先调用 HTTP 导致我的 CORS 错误。
Capture of network panel in chrome
谁能帮帮我?
这可能不是由 ngrx 数据引起的。 请确保您可以在不使用 ngrx 数据的情况下执行相同的请求。
服务器可能需要接受来自 angular 客户端的请求。