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

React中Axios请求报错:无法正常展示商品列表

解决React中Axios请求商品列表的报错问题

你的前端请求代码如下:

const [products, setProducts] = useState([]);

useEffect(() => {
  const fetchProducts = async () => {
    const { data } = await axios.get("/api/products");
    setProducts(data);
  };
  fetchProducts();
}, []);

结合你已配置proxy、安装cors但仍报错的情况,可按以下步骤排查解决:

  • 验证代理配置有效性
    确认package.json中的proxy字段指向正确的后端服务地址,比如后端运行在http://localhost:5000,配置应为:

    "proxy": "http://localhost:5000"
    

    注意:修改proxy后必须重启前端开发服务器,配置才会生效。

  • 确认后端服务与接口状态
    直接在浏览器访问后端真实接口(如http://localhost:5000/api/products),检查是否能正常返回数据。如果后端未启动、接口路径拼写错误,前端代理后会出现404或请求失败。

  • 修正Axios请求路径
    核对后端实际接口路径,若后端接口带有额外前缀(如/api/v1/products),需同步修改前端请求路径,避免路径不匹配。

  • 检查后端CORS中间件配置
    确保后端已正确启用CORS中间件,以Node.js + Express为例:

    const cors = require('cors');
    // 允许所有域名跨域(开发环境可用)
    app.use(cors());
    // 生产环境建议指定允许的前端域名
    app.use(cors({ origin: 'http://your-frontend-domain.com' }));
    
  • 添加错误捕获排查具体问题
    给请求添加try/catch捕获错误,能直接看到报错详情,帮助定位问题:

    const [products, setProducts] = useState([]);
    const [errorMsg, setErrorMsg] = useState('');
    
    useEffect(() => {
      const fetchProducts = async () => {
        try {
          const { data } = await axios.get("/api/products");
          setProducts(data);
        } catch (err) {
          setErrorMsg(err.response?.data?.msg || err.message);
          console.log('请求错误详情:', err);
        }
      };
      fetchProducts();
    }, []);
    

内容的提问来源于stack exchange,提问作者John Oliver

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:20:19