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

React配置http-proxy-middleware代理,Axios请求返回HTML而非JSON

问题分析

核心问题是代理路径匹配错误,导致请求被转发到错误URL,目标服务器返回首页HTML而非API数据:

  • 原代理配置匹配/product开头的请求,转发后URL变成https://www.zbozi.cz/product/api/v3/product/...,这和正确的API前缀/api/v3/不符
  • Axios请求路径多了一层/product,进一步加剧了路径错误
解决方案

1. 修正setupProxy.js配置

将代理匹配路径改为/api,确保请求转发到正确的API前缀路径:

const { createProxyMiddleware } = require("http-proxy-middleware"); // 新版本http-proxy-middleware需用此方法

module.exports = function(app) {
    app.use(
        createProxyMiddleware("/api", {
            target: "https://www.zbozi.cz",
            secure: false,
            changeOrigin: true
        })
    );
};

注:若使用旧版(v0.x)http-proxy-middleware,可继续用proxy替代createProxyMiddleware

2. 修正Axios请求路径

去掉多余的/product前缀,直接请求/api/v3/product/...:

axios
    .get(`/api/v3/product/sonett-tuhe-mydlo-na-ruce-curd-soap-100g`,
        {
            headers: { Accept: 'application/json' },
            params: {
                limitTopOffers: 0,
                limitCheapOffers: 10,
                filterFields: "offersData",
            }
        }
    ).then(
    (product) => {
        console.log(product.data) // 建议打印data字段,Axios响应对象包含额外元数据
    }
).catch(err => {
    console.error('请求错误:', err); // 增加错误捕获,便于排查问题
})
验证逻辑

修正后请求会被正确转发:

  • 前端请求:http://localhost:3000/api/v3/product/...
  • 代理转发到:https://www.zbozi.cz/api/v3/product/...,和你在Postman中测试的正确URL完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:01:16