我已经配置了这样的axios
const axiosConfig = {
baseURL: 'http://127.0.0.1:8000/api',
timeout: 30000,
};
Vue.prototype.$axios = axios.create(axiosConfig)
在我的组件中,我打电话为
this.$axios.get('items').then()..
现在上面的工作,但我想更改baseURL而不影响全局基本URL,以便在我的组件中我可以简单地使用没有api端点所以
我试过
this.$axios.baseURL = "http://127.0.0.1:8000;
this.$axios.get()..//this is still in api endpoint
我该怎么做?
答案 0 :(得分:4)
而不是
this.$axios.get('items')
使用
this.$axios({ url: 'items', baseURL: 'http://new-url.com' })
如果您未通过method: 'XXX'
,则默认情况下会通过get
方式发送。
答案 1 :(得分:3)
VUE_APP_API_ENDPOINT ='http://localtest.me:8000'
axios.defaults.baseURL = process.env.VUE_APP_API_ENDPOINT
就是这样。 Axios默认基本URL替换为特定于构建模式的API端点。 如果您需要特定请求的特定baseURL,请按以下步骤操作:
this.$axios({ url: 'items', baseURL: 'http://new-url.com' })
答案 2 :(得分:2)
在这里放两分钱。我想做同样的事情而不用硬编码特定请求的URL。所以我想出了这个解决方案。
要将'api'
附加到我的baseURL,我将默认的baseURL设置为
axios.defaults.baseURL = '/api/';
然后在我的特定请求中,在明确设置方法和网址后,我将baseURL设置为'/'
axios({
method:'post',
url:'logout',
baseURL: '/',
})
.then(response => {
window.location.reload();
})
.catch(error => {
console.log(error);
});
这是我的项目中经过测试且可以正常工作的解决方案。希望这对其他人有帮助。 :)
答案 3 :(得分:1)
在axios docs中,您有 baseURL 和 url
发出请求时, baseURL
将前置url
。因此,您可以将baseURL
定义为http://127.0.0.1:8000
并向/url
发出请求
//
`url` is the server URL that will be used for the request
url: '/user',
// `baseURL` will be prepended to `url` unless `url` is absolute.
// It can be convenient to set `baseURL` for an instance of axios to pass relative URLs
// to methods of that instance.
baseURL: 'https://some-domain.com/api/',