如何在Axios中取消设置baseURL?请求URL重复主机问题排查
问题原因与解决办法
为什么主机地址重复出现?
你用window.location.host作为新axios实例的baseURL是问题根源。window.location.host只返回主机名+端口(比如tikex-dev.com或tikex-dev.com:8080),缺少http/https协议头。
axios的规则是:如果baseURL是相对路径格式(没有协议头),它会自动将当前页面的全局baseURL(也就是你之前在其他地方设置的那个)作为前缀拼接上去。这就导致原来的全局baseURL里的tikex-dev.com,加上你新设置的tikex-dev.com,最终请求URL里就出现了两次主机地址。
怎么解决?
把window.location.host换成window.location.origin即可。window.location.origin会返回完整的协议+主机+端口(比如https://tikex-dev.com),是标准的绝对路径格式。axios会直接用这个作为新实例的baseURL,不会再拼接全局配置的地址,自然就不会重复了。
修正后的代码:
axios .create({ baseURL: window.location.origin, }) .get('/api/generatePostAnimation', { // 你的其他请求配置 })
内容的提问来源于stack exchange,提问作者János
相关产品推荐
相关产品推荐

