Axios 인터셉터 Axios 인터셉터를 사용한 글로벌 HTTP 요청 및 응답 처리
7308 단어 axiosinterceptorhttpjavascript
물론 실제 사용 사례의 경우 모든 요청과 응답을 같은 방식으로 처리하기에는 너무 일반적일 수 있습니다. 그렇기 때문에 각 HTTP 요청에 대해 전역 처리를 비활성화하는 구성 옵션도 있습니다.
데모는 CodePen에서 사용할 수 있습니다.
데모에서는 HTTP 요청이 완료될 때 알림을 표시하기 위해 VanillaToasts 라이브러리를 사용했습니다.
Axios 설치
지침에 따라 installing Axios 시작합니다.
새 항목instance을 만들고 사용해야 하는 전역 구성 옵션을 추가합니다.
const axiosInstance = axios.create({
baseURL: 'https://...'
})
HTTP 요청 핸들러를 구성 가능하게 만들기
전역 핸들러를 사용해야 하는지 여부를 확인하는
isHandlerEnabled
함수를 추가합니다. 여기에서 추가 사용자 정의 논리를 구현할 수도 있습니다. 예를 들어 특정 HTTP 응답 코드에 대해서만 핸들러를 활성화합니다.const isHandlerEnabled = (config={}) => {
return config.hasOwnProperty('handlerEnabled') && !config.handlerEnabled ?
false : true
}
이제 원하는 경우 나중에 개별 HTTP 호출에 대한 처리기를 비활성화할 수 있습니다.
await axiosInstance.get('/v2/api-endpoint', { handlerEnabled: false })
Axios 요청 인터셉터
요청 핸들러 추가
요청 처리기의 일반적인 사용 사례 중 하나는 새 HTTP 헤더를 수정하거나 추가하는 것입니다. 예를 들어 인증 토큰을 모든 요청에 주입할 수 있습니다.
const requestHandler = (request) => {
if (isHandlerEnabled(request)) {
// Modify request here
request.headers['X-CodePen'] = 'https://codepen.io/teroauralinna/full/vPvKWe'
}
return request
}
요청 인터셉터 활성화
axiosInstance.interceptors.request.use(
request => requestHandler(request)
)
Axios 응답 및 오류 인터셉터
응답 핸들러 추가
const errorHandler = (error) => {
if (isHandlerEnabled(error.config)) {
// Handle errors
}
return Promise.reject({ ...error })
}
const successHandler = (response) => {
if (isHandlerEnabled(response.config)) {
// Handle responses
}
return response
}
인터셉터 활성화
axiosInstance.interceptors.response.use(
response => successHandler(response),
error => errorHandler(error)
)
이제 Axios의 모든 요청은 우리가 정의한 핸들러를 사용합니다.
이 블로그 게시물은 원래 Auralinna.blog에 게시되었습니다.
Reference
이 문제에 관하여(Axios 인터셉터 Axios 인터셉터를 사용한 글로벌 HTTP 요청 및 응답 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/teroauralinna/global-http-request-and-response-handling-with-the-axios-interceptor-30ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)