【问题标题】:React app in Docker fetch can't find a serverDocker fetch 中的 React 应用找不到服务器
【发布时间】:2023-01-08 17:42:10
【问题描述】:

我有一个 React 应用程序构建,其中 Create-React-App 通过 docker-compose 在 docker 容器设置中运行。

这段代码:

    const req = new Request(
        apiAdminUrl + '/login', {
        method: 'POST',
        body: formData
    }
    return fetch(req).then(processResp, processErr);

返回 TypeError: Load failed,“加载资源失败:找不到具有指定主机名的服务器。”

但是来自同一个容器的 curl 请求没有问题:

curl -d "email=admin@some.etc" -d "pwd=xxx" -X POST http://api-admin:3000/v1/login

API 代码中启用了 CORS。 apiAdminUrl 正确设置为 http://api-admin:3000/v1

我错过了什么?

【问题讨论】:

    标签: reactjs docker docker-compose create-react-app


    【解决方案1】:

    当您在 docker 容器内运行 curl 命令时,它可以看到其他连接的 docker 容器,并看到自己等。

    但是当你运行应用程序时,反应代码从你的浏览器运行,那是从你自己的机器而不是来自 docker 容器。因此,它看不到 docker 主机名。

    解决此问题的常用方法是将另一个容器公开为本地主机等和/或按照此处文档中的代理设置步骤进行操作:
    https://create-react-app.dev/docs/proxying-api-requests-in-development/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多