인프런 커뮤니티 질문&답변

전민호님의 프로필 이미지
전민호

작성한 질문수

Typescript with Vue 실전 프로젝트

Axios 연동하기 + 리팩토링

Axios Post보낼때 어떤 식으로 구성하는게 좋을까요?

해결된 질문

작성

·

556

0

강의에서 Axios 를 클래스 방식으로 커스텀해서 쓰셨는데,

실질적으로

get만 보여주셨는데,, POST 방식으로 사용할때는 어떤식으로 사용해야하나요

?? 헤더를 넣고

써야하는데.. 맨 아래 예제 처럼 config에 헤더 구성해서 넣으면 되는 것인지..  궁금합니다.

export default class AxiosService {
  public static readonly instance: AxiosInstance = axios.create({
    baseURL: "http://localhost:8080",
    headers: {},
    timeout: 100000
  });
}
async addData({ commit }, data: object) {
      const config: object = {
        "content-type": "json"
      };
      const res: AxiosResponse<{
        todoList: Item[];
      }> = await AxiosService.instance.post("/data.json", data, config);

      commit("addItem", data);
    }

답변 1

2

성도희님의 프로필 이미지
성도희
지식공유자

안녕하세요! 

AxiosService에서 instance에서 설정한 header 값은 
instance를 통한 모든 호출에 적용되는 값이니
통일된 header 값이 있다면 instance에 설정해서 쓰시는것이 좋습니다.
한번만 설정해놓으면 되니까요 ^^

특정 통신에서만 사용되는 header값이 있다면, 
두번째 코드와 같이 세번째 인자로 header 값을 넣으시면 됩니다.
여기서 설정한 header 값이  instance에서 설정한 header 값보다 우선순위를 가집니다.

작성하신 코드에서는  config를 아래와 같이 고치셔야 할 것 같습니다.

const config: AxiosRequestConfig = {
headers: {
"content-type": "json"
}
};
전민호님의 프로필 이미지
전민호

작성한 질문수

질문하기