React生产构建中解决WordPress API CORS问题的http-proxy-middleware失效
核心失效原因
http-proxy-middleware是依赖Node.js运行时的服务端中间件,你写的代理配置仅会被本地开发阶段的Node服务(比如React脚手架自带的npm start启动的dev server)加载执行。- 生产构建产物是纯静态的HTML、JS、CSS文件,没有Node运行环境来加载执行这段代理代码,部署到生产环境后自然完全不生效。
生产环境可落地的解决方式
- 在静态托管层配置反向代理:不管你用Nginx、云CDN、还是各类静态站点托管平台,都需要在托管服务的规则配置中,把匹配
/posts前缀的请求转发到WordPress的接口根地址,复刻本地代理的转发逻辑。 - 核对路径匹配规则:你当前的代理配置没有设置
pathRewrite,实际转发时会完整保留原请求路径拼接到目标地址后,也就是最终请求的地址为https://example.com/wp-json/wp/v2+ 原请求的完整路径,要确认这个拼接结果和WordPress REST接口的实际访问路径一致,避免出现代理通了但接口返回404的问题。 - 直接配置WordPress端CORS规则:如果不想在前端托管层维护代理规则,可以在WordPress站点的响应头中添加允许你的前端域名跨域访问的权限,从根源上解决跨域拦截,不需要额外代理逻辑。
内容的提问来源于stack exchange,提问作者Ramandeep Kaur
相关产品推荐
相关产品推荐

