programing

JS 가져오기, 응답 시 헤더를 가져오지 않음

powerit 2023. 2. 22. 23:17
반응형

JS 가져오기, 응답 시 헤더를 가져오지 않음

fetch to wordpress api를 사용하여 요청을 하고 있는데 응답에 빈 헤더 객체가 나타납니다. 왜 그런지 아는 사람 있나요?

여기 내 페치액션이 있다

export const getJobs = () => {
  return dispatch => {
    fetch(endpoints.jobs)
      .then(res => res.json())
      .then(data => dispatch(setJobs(data)))
  }
};

res.json을 실행하기 전에 얻은 오브젝트는 다음과 같습니다.

body: (...)
bodyUsed: false
headers: {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "url"

응답에서 모든 헤더를 얻을 수 있는 방법이 없을까요?

CORS 를 사용하는 경우는, 응답 헤더에의 액세스에 제한이 있습니다.당신의 대응 타입이 코르스이기 때문에 그것이 범인일지도 모릅니다.

상세한 것에 대하여는, 다음의 회답을 참조해 주세요.

콘솔이 표시하기 때문에{}위해서headers액세스 가능한 헤더가 없는 것은 아닙니다.송신된 것이 있는 경우는, 오브젝트인 에서 액세스 할 수 있습니다.이거는...

...HTTP 요청 및 응답 헤더에 대해 다양한 액션을 수행할 수 있습니다.

...를 예로 들 수 있습니다.

예를 들어,setJobs필요한 것은foo헤더:

export const getJobs = () => {
  return dispatch => {
    fetch(endpoints.jobs)
      // Read and parse the body and then return an object with the body data and the `foo` header
      .then(res => res.json().then(data => ({data, foo: res.headers.get("foo")})))
      // Receive the body data and the `foo` header and pass them on to `setJobs`
      .then(({data, foo}) => dispatch(setJobs(data, foo)))
  }
};

대신 다음을 사용해 보십시오.

response.headers.get('x-auth-token')

저는 대시보드와 TJ의 다른 두 가지 답변을 조합한 것입니다.

서버 측에서는 헤더를 추가해야 했습니다.access-control-expose-headers읽고 싶은 쉼표로 구분된 헤더를 사용하여 응답에 응답합니다.여기 관련 문서를 참조하십시오.

하지만 내가 접속하려고 했을 때res.headers경유로console.log(JSON.stringify(res.headers), 그것은 단지 출력하고 있습니다.{}T.J.의 솔루션은 제게 효과가 있었습니다. 그 이유는 다음과 같습니다.

res.headers.get("header-name");

그리고 그것이 내가 바라던 결과를 내게 주었다.

언급URL : https://stackoverflow.com/questions/50570900/js-fetch-not-getting-headers-on-response

반응형