在 NGRX 效果 Angular 中访问 HTTP Header 响应
Access HTTP Header response inside NGRX Effect Angular
在我的 Angular 应用程序中,在成功向服务器发出 POST 后,我收到一个 201 响应,其中包含响应 header 中我希望在我的 NGRX 中访问的位置效果。该位置包含一个 id,我需要它来触发服务调用。
NGRX 操作:
export const postJobOfferSuccess = createAction('[JobOffer] Post jobOffer success', props<{ successMessage: string, publish: boolean, final: boolean, response: HttpHeaderResponse }>());
NGRX 效果:
postJobOffer$ = createEffect(() =>
this.actions$.pipe(
ofType(postJobOffer),
mergeMap(action => {
return this.jobOfferClientService.postJobOffer(action.jobOffer).pipe(
map((response) => postJobOfferSuccess({ successMessage: 'Success', publish: action.publish, final: action.final, response: response.HttpHeaderResponse })),
mapErrorToAction(postJobOfferFailed)
);
})
)
);
我希望我的 postJobOfferSuccess 包含带有 HTTPHeaderResponse 的响应,但是在检查我的 redux 选项卡时它没有显示 header 响应。如何在效果中访问 HTTPHeaderResponse?
我的 redux 选项卡:
在您的服务中,您必须倾听回应:
this.http.post('http//...', payload, { observe: 'response' }).pipe(
tap(res => console.log(res)) // headers = res.headers | data = res.body
);
在我的 Angular 应用程序中,在成功向服务器发出 POST 后,我收到一个 201 响应,其中包含响应 header 中我希望在我的 NGRX 中访问的位置效果。该位置包含一个 id,我需要它来触发服务调用。
NGRX 操作:
export const postJobOfferSuccess = createAction('[JobOffer] Post jobOffer success', props<{ successMessage: string, publish: boolean, final: boolean, response: HttpHeaderResponse }>());
NGRX 效果:
postJobOffer$ = createEffect(() =>
this.actions$.pipe(
ofType(postJobOffer),
mergeMap(action => {
return this.jobOfferClientService.postJobOffer(action.jobOffer).pipe(
map((response) => postJobOfferSuccess({ successMessage: 'Success', publish: action.publish, final: action.final, response: response.HttpHeaderResponse })),
mapErrorToAction(postJobOfferFailed)
);
})
)
);
我希望我的 postJobOfferSuccess 包含带有 HTTPHeaderResponse 的响应,但是在检查我的 redux 选项卡时它没有显示 header 响应。如何在效果中访问 HTTPHeaderResponse?
我的 redux 选项卡:
在您的服务中,您必须倾听回应:
this.http.post('http//...', payload, { observe: 'response' }).pipe(
tap(res => console.log(res)) // headers = res.headers | data = res.body
);