代码之家  ›  专栏  ›  技术社区  ›  Heathcliff

访问NGRX中的HTTP头响应

  •  0
  • Heathcliff  · 技术社区  · 3 年前

    在我的Angular应用程序中,成功向服务器发送帖子后,我收到一个201响应,其中包含我希望在我的NGRX效果中访问的响应头中的位置。该位置包含一个id,我需要它来触发服务调用。

    enter image description here

    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选项卡时,它没有显示标题响应。如何在特效中访问HTTPHeaderResponse?

    我的redux标签:

    enter image description here

    1 回复  |  直到 3 年前
        1
  •  1
  •   temp_user    3 年前

    在你的服务中,你必须倾听回应:

    
    this.http.post('http//...', payload, { observe: 'response' }).pipe(
      tap(res => console.log(res)) // headers = res.headers | data = res.body
    );