http://1.1.1.1/~~~
/api/api2/create
으로 잡아주면 프로젝트에서는 자동으로 앞에 http://1.1.1.1/api/api2/create
자기 자신의 ip(window의 hostname)을 붙여서 호출하는데,
이를 이용하여 테스트 주소값을 하드코딩하는 것 보단 window
객체의 location
속성을 이용하면 아주 좋다.
그래서 만약 당신이 axios.create()
메서드로 http req instance를 만든다고 한다면 아래와 같이 설정해주면 아주 편리하다.
export const instance_Api_A = axios.create({
// 여기는 개발용
// baseURL: '/apiA/api',
// 여기는 배포용
baseURL: `http://${window.location.hostname}/api`,
headers: {
"Access-Control-Allow-Origin": `http://${window.location.hostname}`,
'Access-Control-Allow-Credentials':"true",
}
});
이렇게 한 번 짜두면 서버가 어디에 설치되든 굳이 재빌드를 할 필요가 없다.
참고로 CORS에러를 피하기위해 헤더에 Credentials
옵션을 넣어주면 된다. 그런데 이때, back-end에서도 with-credentials
어노테이션이 있어야 CORS를 해결할 수 있다.