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
'programing' 카테고리의 다른 글
selectMatch에서 angular ui-bootstrap auto-ahead 콜백을 실행 (0) | 2023.02.22 |
---|---|
.ajax() 호출의 데이터에 대한 jQuery .find()가 div 대신 "[객체]"를 반환합니다. (0) | 2023.02.22 |
noImplicitAny 플래그가 활성화된 형식 스크립트를 컴파일할 때 "Index signature of object type is implicitly has a 'any' type" 오류를 방지하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
create-module-app, 설치 오류("명령어를 찾을 수 없음") (0) | 2023.02.22 |
Spring Boot Dev Tools 프로덕션에서 전원을 끄시겠습니까? (0) | 2023.02.22 |