Axios는 응답 헤더 필드에 액세스합니다
React 및 Redux를 사용하여 프론트 엔드 앱을 작성 중이며 axios 를 사용하여 요청을 수행하고 있습니다. 응답 헤더의 모든 필드에 액세스하고 싶습니다. 내 브라우저에서 헤더를 검사 할 수 있고 필요한 모든 필드 (예 : 토큰, uid 등)가 있는지 확인할 수 있지만 호출 할 때
const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
console.log(response.headers);
});
난 그냥
Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}
다른 모든 필드가 표시되는 것처럼 여기 내 브라우저 네트워크 탭.
최고.
CORS 요청의 경우 브라우저는 기본적으로 다음 응답 헤더에만 액세스 할 수 있습니다.
- 캐시 제어
- 내용 언어
- 컨텐츠 타입
- 만료
- 마지막 수정
- 프라 그마
클라이언트 앱이 다른 헤더에 액세스 할 수있게 하려면 서버 에서 Access-Control-Expose-Headers 헤더를 설정해야합니다.
Access-Control-Expose-Headers: Access-Token, Uid
이것은 정말 저를 도왔습니다. 귀하의 답변에 대해 Nick Uraltsev에게 감사드립니다.
당신이 사용하는 사람들을 위해 nodejs을 함께 고르 :
...
const cors = require('cors');
const corsOptions = {
exposedHeaders: 'Authorization',
};
app.use(cors(corsOptions));
...
당신이 방법으로 응답을 보내는 경우 res.header('Authorization', `Bearer ${token}`).send();
나는 같은 문제에 직면했다. 나는 "WebSecurity.java"에서 이것을 수행했다. 그것은 cors 구성의 setExposedHeaders 메소드에 관한 것이다.
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowCredentials(true);
configuration.setAllowedOrigins(Arrays.asList(FRONT_END_SERVER));
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
configuration.setAllowedHeaders(Arrays.asList("X-Requested-With","Origin","Content-Type","Accept","Authorization"));
// This allow us to expose the headers
configuration.setExposedHeaders(Arrays.asList("Access-Control-Allow-Headers", "Authorization, x-xsrf-token, Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, " +
"Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
나는 그것이 작동하기를 바랍니다.
asp.net 코어에서 동일한 문제에 직면했습니다.
public static class CorsConfig
{
public static void AddCorsConfig(this IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder
.WithExposedHeaders("X-Pagination")
);
});
}
}
나는 같은 문제에 직면한다. 설정 Access-Control-Expose-Headers: Set-Cookie
했는데도 헤더에서 값을 읽을 수 없습니다.
참고 URL : https://stackoverflow.com/questions/37897523/axios-get-access-to-response-header-fields
'programing tip' 카테고리의 다른 글
추상 클래스의 모든 상속 된 클래스 가져 오기 (0) | 2020.08.07 |
---|---|
psycopg2 커서에서 열 이름 목록을 얻으려면 어떻게해야합니까? (0) | 2020.08.07 |
jQuery를 사용하여 파일 다운로드 (0) | 2020.08.07 |
clang을 감지하는 데 사용할 수있는 사전 정의 된 매크로는 무엇입니까? (0) | 2020.08.07 |
SQL UPDATE SET 한 열이 다른 열에서 참조하는 관련 테이블의 값과 같도록 설정합니까? (0) | 2020.08.07 |