从 axios 请求 url 中删除 localhost:8080

Posted

技术标签:

【中文标题】从 axios 请求 url 中删除 localhost:8080【英文标题】:Remove localhost:8080 from axios request url 【发布时间】:2021-08-24 05:30:07 【问题描述】:

我在向后端发出请求时遇到问题。 Axios 仍将 localhost 写为基本 url,然后添加后端 url。

GET http://localhost:8080/127.0.0.1:8000/api/projects 404(未找到)

我确实尝试了几件事。首先,我尝试更改vue-router 的基本网址。在env.development 中我写了一个VUE_APP_ROUTER_BASE_URL="/" 并将其添加到路由器配置中。

const router = new VueRouter(
    mode: 'history',
    base: process.env.VUE_APP_ROUTER_BASE_URL,
    routes
  )
  
export default router

但这并没有成功。然后我尝试像axios.defaults.baseUrl = "/" 一样直接更改axios baseUrl 但这也没有成功......我不确定,我错过了什么,还有其他想法如何在我向后端发出请求时重新排列baseUrl。

【问题讨论】:

如果您正在执行此操作,请不要在帖子中提供完整的 url 您在VUE_APP_ROUTER_BASE_URL 中有http:// 前缀吗? 【参考方案1】:

您应该在后端 url 的开头添加“/”, “/”删除新网址之前的所有内容 或者可能是 vue-cli 应用程序的问题,请尝试在您的生产和/或开发环境中设置 publicPath 或 baseUrl。

https://cli.vuejs.org/config/#publicpath

【讨论】:

【参考方案2】:

我遇到了同样的问题,所以我想出了基本的解决方案来制作满足所有要求的 URL,无论是开发和部署、API 调用以及推送到源代码控制等。

Make Base URL at Frontend using javascript (development, APIs and production)

否则,您将通过将 localhost 置于开发中并在部署中删除 loalhost 并更改 API 端口来回退

注意:它独立于框架,你可以在任何你喜欢的地方通过javascript使用它

【讨论】:

以上是关于从 axios 请求 url 中删除 localhost:8080的主要内容,如果未能解决你的问题,请参考以下文章

axios中url拼接和请求参数分离

axios中url拼接和请求参数分离

无法从 axios POST 请求中获得响应(React)

使用 axios 从 json url 获取图像

axios请求忽略参数

axios中怎么传数组