首页 > 解决方案 > 如何在我的应用程序中每个获取请求的开头添加一个 URL?

问题描述

我有一个以CRA开头的 react 应用程序,并为我的 react 应用程序设置了一个后端服务器。

我的获取请求类似于

const res = await fetch("/applications", {
...

我已经使用http-proxy-middleware 为我的应用程序设置了代理中间件

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    createProxyMiddleware({
      target: 'https://projects.mydomain.com/', 
      changeOrigin: true,
    })
  );
};

当我使用fetch("/applications")我的请求向后端发出请求时,get 被解析为fetch("/projects.mydomain.com/applications")

但是我需要在所有获取请求的开头添加一个 url 路径,我最终想要的结果是:

fetch("/projects.mydomain.com/b2b-iys/applications")

我试过这样做:

  app.use(
    '/b2b-iys/',
    createProxyMiddleware("/b2b-iys", {
      target: 'https://projects.muhammed-aldulaimi.com/', 
      changeOrigin: true,
    })
  );

但这没有用。

理想情况下,我希望将其添加到我的代理中,而不是一一更改文件。

这里有什么解决方案?

标签: reactjshttp-proxy-middleware

解决方案


从 http-proxy-middleware文档中,我认为您可以使用该pathRewrite选项添加基本路径:

app.use(
  createProxyMiddleware({
    target: 'https://projects.mydomain.com', 
    changeOrigin: true,
    pathRewrite: {'^/': '/b2b-iys/'}
  })
);

推荐阅读