He configurado mis axios así
const axiosConfig = { baseURL: 'http://127.0.0.1:8000/api', timeout: 30000, }; Vue.prototype.$axios = axios.create(axiosConfig)Dentro de mi componente, hago una llamada como
this.$axios.get('items').then().. Ahora lo anterior funciona, pero me gustaría cambiar la baseURL base sin afectar la URL base global para que en mi componente pueda simplemente usarla sin el punto final de la API.
He intentado
this.$axios.baseURL = "http://127.0.0.1:8000"; this.$axios.get().. //this is still in api endpoint¿Cómo hago esto?
En vez de
this.$axios.get('items')usar
this.$axios({ url: 'items', baseURL: 'http://new-url.com' }) Si no pasa method: 'XXX' , de manera predeterminada, se enviará a través del método get .
Solicitud de configuración: https://github.com/axios/axios#request-config
Poniendo mis dos centavos aquí. Quería hacer lo mismo sin codificar la URL para mi solicitud específica. Así que se me ocurrió esta solución.
Para agregar 'api' a mi baseURL, tengo mi baseURL predeterminada configurada como,
axios.defaults.baseURL = '/api/'; Luego, en mi solicitud específica, después de configurar explícitamente el método y la URL, configuro la URL base en '/'
axios({ method:'post', url:'logout', baseURL: '/', }) .then(response => { window.location.reload(); }) .catch(error => { console.log(error); });VUE_APP_API_ENDPOINT ='http://localtest.me:8000'axios.defaults.baseURL = process.env.VUE_APP_API_ENDPOINTY eso es. La URL base predeterminada de Axios se reemplaza con el punto final de API específico del modo de compilación. Si necesita una baseURL específica para una solicitud específica, hágalo así:
this.$axios({ url: 'items', baseURL: 'http://new-url.com' })