【问题标题】:Automatically proxy AJAX requests in both development and production environments在开发和生产环境中自动代理 AJAX 请求
【发布时间】:2018-03-06 14:21:00
【问题描述】:

我正在使用 Next.jsAxios 库。

我的 axios 请求如下所示:

axios.get('/api/users/1')

当我在同一个实例中拥有 API 和渲染服务器时,这很有效。 但现在我的 API 后端完全分离了。

在开发模式下,它托管在localhost:3001,而前端(下一个)开发服务器托管在localhost:3000。在生产中,渲染服务器托管在https://example.com,而API 托管在https://api.someoherdomain.com

如何保持 axios 请求干净(无需手动导入内容并为 url 字符串添加前缀),保持它们像 /api/users/1,但在运行开发模式时自动将它们设为 localhost:3000/api/users/1,而在生产中托管时自动将它们设为 https://example.com/api/users/1

我需要像 https://github.com/zeit/next.js/tree/master/examples/with-custom-reverse-proxy 这样的东西,但要同时在生产和开发模式下工作。

不是推荐的生产规模方法(因此 显式开发标志),因为我们应该将代理范围视为 UI 应用程序之外 并有单独的网络服务器来处理。

如果这是不可能的,我正在寻找最优雅的方式来处理这个问题。有什么建议吗?

在生产中,我们使用 Plesk(使用 Ngnix)。

【问题讨论】:

    标签: ajax webpack http-proxy nextjs


    【解决方案1】:

    您可以创建一个axios 实例并根据环境变量设置baseUrl 参数:) 此处的文档:https://github.com/mzabriskie/axios#creating-an-instance

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2018-06-04
      • 2021-12-25
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      相关资源
      最近更新 更多