Axios: μΈν„°μ…‰ν„°μ—μ„œ baseURL 섀정이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 06μ›” 09일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: axios/axios

μš”μ•½

μΈν„°μ…‰ν„°μ—μ„œ baseURL 섀정이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

const service = axios.create({
  baseURL: 'http://localhost/'
});

service.interceptors.request.use(config => {

  config.baseURL = 'dd'
  console.log(config.url) // output :  http://localhost/././../

  return config;
}, error => {
  // Do something with request error
  console.error(error); // for debug
  Promise.reject(error);
})

λ¬Έλ§₯

  • axios 버전:
  • ν™˜κ²½: 예: λ…Έλ“œ vv8.0.0, chrome 59.0.3071.86, macOS 10.12

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κ΅¬ν˜„ μ„ΈλΆ€ 사항보닀 κ°œλ…μ  문제일 수 μžˆμŠ΅λ‹ˆλ‹€. baseURL을 μ„€μ •ν•˜λŠ” 것은 "λͺ¨λ“  μš”μ²­μ— ​​이것을 μΆ”κ°€"라고 λ§ν•˜λŠ” 방법인 것 κ°™μŠ΅λ‹ˆλ‹€. μ΄λŠ” λͺ¨λ“  μš”μ²­μ— β€‹β€‹λŒ€ν•΄ μ„€μ •ν•  λ•Œ λ¬΄μ˜λ―Έν•΄ λ³΄μž…λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 쑰건에 λŒ€ν•œ κ²½μš°κ°€ ν™•μ‹€νžˆ λ§Œλ“€μ–΄μ§ˆ 수 μžˆμ§€λ§Œ:

axios.interceptors.request.use((config) => {
  return getAge()
  .then((age) => {
    if(age < 10){ config.baseURL = 'https://young.com' }
    else { config.baseURL = 'https://young.com' }
  })

ν•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 μ „μ—­ 기본값을 μ„€μ •ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
axios.defaults.baseURL = 'https://example.com';
μš”μ²­κ³Ό ν•¨κ»˜ ꡬ성을 μ „λ‹¬ν•˜λŠ” 것과 같이:
axios.post('/extra', { baseURL: 'https://example.com' })

두 경우 λͺ¨λ‘ config의 'url' ν•„λ“œλŠ” ' https://example.com/extra 'μ΄μ§€λ§Œ μΈν„°μ…‰ν„°μ—μ„œ baseURL을 μ„€μ •ν•˜λ©΄ 'config.baseURL'만 μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€. λ‚΄ 말은, 당신이 말 κ·ΈλŒ€λ‘œ ν•΄λ‹Ή ν•„λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것뿐인 μ΄μœ κ°€ 이해가 λ˜μ§€λ§Œ, url ν•„λ“œλ„ μ—…λ°μ΄νŠΈν–ˆκ±°λ‚˜ μΈν„°μ…‰ν„°μ—μ„œ baseURL 섀정이 μ“Έλͺ¨μ—†μŒ/ꢌμž₯ν•˜μ§€ μ•ŠμŒ.

@ Baoyx007 항상 κ΅¬μ„±μ—μ„œ 'url' 값을 μˆ˜λ™μœΌλ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

service.interceptors.request.use(config => {
  //config.baseURL = 'dd'
    config.url = BASE_URL + config.url
  return config;

λ˜λŠ” λͺ¨λ“  μš”μ²­μ— β€‹β€‹λŒ€ν•΄

axios.get('/hello', { baseURL: BASE_URL })

λ…Έλ“œ v7.10.0
μ•…μ‹œμ˜€μŠ€ v0.16.12

λͺ¨λ“  3 λŒ“κΈ€

look me Custom instance defaults axios.all is not a function #948 my working normal only all is not a function

같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κ΅¬ν˜„ μ„ΈλΆ€ 사항보닀 κ°œλ…μ  문제일 수 μžˆμŠ΅λ‹ˆλ‹€. baseURL을 μ„€μ •ν•˜λŠ” 것은 "λͺ¨λ“  μš”μ²­μ— ​​이것을 μΆ”κ°€"라고 λ§ν•˜λŠ” 방법인 것 κ°™μŠ΅λ‹ˆλ‹€. μ΄λŠ” λͺ¨λ“  μš”μ²­μ— β€‹β€‹λŒ€ν•΄ μ„€μ •ν•  λ•Œ λ¬΄μ˜λ―Έν•΄ λ³΄μž…λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 쑰건에 λŒ€ν•œ κ²½μš°κ°€ ν™•μ‹€νžˆ λ§Œλ“€μ–΄μ§ˆ 수 μžˆμ§€λ§Œ:

axios.interceptors.request.use((config) => {
  return getAge()
  .then((age) => {
    if(age < 10){ config.baseURL = 'https://young.com' }
    else { config.baseURL = 'https://young.com' }
  })

ν•˜μ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 μ „μ—­ 기본값을 μ„€μ •ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
axios.defaults.baseURL = 'https://example.com';
μš”μ²­κ³Ό ν•¨κ»˜ ꡬ성을 μ „λ‹¬ν•˜λŠ” 것과 같이:
axios.post('/extra', { baseURL: 'https://example.com' })

두 경우 λͺ¨λ‘ config의 'url' ν•„λ“œλŠ” ' https://example.com/extra 'μ΄μ§€λ§Œ μΈν„°μ…‰ν„°μ—μ„œ baseURL을 μ„€μ •ν•˜λ©΄ 'config.baseURL'만 μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€. λ‚΄ 말은, 당신이 말 κ·ΈλŒ€λ‘œ ν•΄λ‹Ή ν•„λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것뿐인 μ΄μœ κ°€ 이해가 λ˜μ§€λ§Œ, url ν•„λ“œλ„ μ—…λ°μ΄νŠΈν–ˆκ±°λ‚˜ μΈν„°μ…‰ν„°μ—μ„œ baseURL 섀정이 μ“Έλͺ¨μ—†μŒ/ꢌμž₯ν•˜μ§€ μ•ŠμŒ.

@ Baoyx007 항상 κ΅¬μ„±μ—μ„œ 'url' 값을 μˆ˜λ™μœΌλ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

service.interceptors.request.use(config => {
  //config.baseURL = 'dd'
    config.url = BASE_URL + config.url
  return config;

λ˜λŠ” λͺ¨λ“  μš”μ²­μ— β€‹β€‹λŒ€ν•΄

axios.get('/hello', { baseURL: BASE_URL })

λ…Έλ“œ v7.10.0
μ•…μ‹œμ˜€μŠ€ v0.16.12

#950μ—μ„œ μˆ˜μ •λ¨

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰