You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境Axios Post请求域名重复问题排查求助

问题分析与解决方案

问题原因

你的REACT_APP_SERVER_URL环境变量值为api.dino-run.site,缺少协议前缀(https://)。当axios使用这种不带协议的地址发起请求时,浏览器会将其识别为当前页面域名(dino-run.site)下的相对路径,最终拼接出https://dino-run.site/api.dino-run.site/user/register这类域名重复的错误地址。

解决方案

1. 修正环境变量值

将Netlify中的REACT_APP_SERVER_URL设置为完整的带协议地址:

https://api.dino-run.site

修改后必须重新部署前端项目——React的环境变量是在构建阶段注入的,只有重新构建才能让新的变量值生效。

2. 优化请求拼接方式(可选)

在axios初始化时配置全局baseURL,避免每次请求手动拼接地址,减少出错概率:

// 在项目入口文件或axios专属配置文件中添加
import axios from 'axios';

axios.defaults.baseURL = process.env.REACT_APP_SERVER_URL;

之后你的saga代码可简化为:

function* userInfo({ payload }) {
  const { userId, nickName, profileImage } = payload;
  console.log("REACT_APP_SERVER_URL::", process.env.REACT_APP_SERVER_URL);
  try {
    yield axios.post('/user/register', {
      userId,
      nickName,
      profileImage,
    });
  } catch (err) {
    console.log("user saga Error exist: ", err);
    yield put(userInfoFailure(err));
  }
}

3. 验证环境变量加载

确认Netlify配置无误:

  • 进入项目的Site settings > Environment variables,检查REACT_APP_SERVER_URL的值是否为https://api.dino-run.site
  • 重新部署后,查看控制台打印的REACT_APP_SERVER_URL是否为完整的带协议地址

内容的提问来源于stack exchange,提问作者henry.ki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:26:26