强制反应代理某些端点,即使使用接受:文本/html



React 代理仅代理请求,标头中没有 Accept: text/html (https://create-react-app.dev/docs/proxying-api-requests-in-development/(。但是有一个重定向到我的代理服务器,在标题中有 Accept:text/html,我无法控制。有没有办法将反应代理配置为重定向某些端点,无论 Accept 标头中的内容如何。喜欢

always_redirect : /api/registration/confirmation

是的,你可以这样做。要通过 react 代理非 AJAX 调用,您需要手动安装http-proxy-middleware并配置代理。

首先在您的 react 应用程序中安装http-proxy-middleware

npm install http-proxy-middleware --save

然后使用以下配置创建src/setupProxy.js文件

/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-undef */
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:8080',
secure: false,
changeOrigin: true,
})
);
};

现在只需启动应用程序,您将看到非 AJAX 调用(php 等(也被正确代理。

注意:在使用http-proxy-middleware手动配置代理配置之前package.json文件中删除代理配置,否则如果在两个位置都定义代理,则代理将无法正常工作

最新更新