vue axios 모든 요청에 헤더,파라메터 추가하기

# 프로젝트내 모든 axios 요청 또는 응답에 공통으로 추가할 데이터(파라메터가,헤더)가 있는 경우
# 각 axios 구문 마다 일일히 추가하는 대신 axios intercepter 를 활용할 수 있다.
# 공통 파라메터 값이 vuetify store 에 저장된 경우
# vue 인스턴스 내부에서 axios.interceptors 를 명시해놓아야 한다.

# 얘시
# src/store.js 가 있고
# src/rouster/index.js 에 다음과 같이 추가한다.

import { store } from '@/store';

// axios 모든 요청 보내기전에 수행
// Add a request interceptor
axios.interceptors.request.use(function (config) {
  // Do something before request is sent
  if (config.params == null) {
    config.params = {};
  }
  config.params['ysoftman1'] = store.state.mydata.value;
  config.headers['fruit1'] = "lemon";
  config.headers['fruit2'] = "apple";
  console.log("----- config:", config);
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

// axios 모든 응답 리턴전에 수행
// Add a response interceptor
axios.interceptors.response.use(function (response) {
  // Any status code that lie within the range of 2xx cause this function to trigger
  // Do something with response data
  return response;
}, function (error) {
  // Any status codes that falls outside the range of 2xx cause this function to trigger
  // Do something with response error
  return Promise.reject(error);
});


comments:

댓글 쓰기