Proxy 是否可以从create-react应用程序将html get请求代理到/graphql?

Proxy 是否可以从create-react应用程序将html get请求代理到/graphql?,proxy,create-react-app,Proxy,Create React App,我有一个create react应用程序,在该应用程序中,我通过添加以下内容启用了代理: "proxy": "http://localhost:3001", 到my package.json。对于对/graphql的API请求来说,这很好,但是当web浏览器请求/graphql(用于加载UI以运行查询)由前端处理而不是代理时。也可以代理它吗 当我试图访问OAuth时也会发生同样的情况,前端处理它而不是后端。确实可以进一步自定义代理 首先,当web浏览器请求/graphql或/auth/face

我有一个create react应用程序,在该应用程序中,我通过添加以下内容启用了代理:

"proxy": "http://localhost:3001",
到my package.json。对于对/graphql的API请求来说,这很好,但是当web浏览器请求/graphql(用于加载UI以运行查询)由前端处理而不是代理时。也可以代理它吗


当我试图访问OAuth时也会发生同样的情况,前端处理它而不是后端。

确实可以进一步自定义代理

首先,当web浏览器请求
/graphql
/auth/facebook
时,它会发送一个
Accept
头,其中包含
文本/html
(以及其他内容)。使用此标头值配置CRA代理请求:

开发服务器将尝试将其Accept标头中没有文本/html的请求发送到代理

(原文强调)

幸运的是,您可以覆盖默认配置,并根据自己的喜好基本上钩住代理中间件。更为重要的是,问题的关键在于:

  app.use(
    '/graphql',
    createProxyMiddleware({
      target: 'http://localhost:3001',
      changeOrigin: true,
    })
  );

非常感谢。我还必须将
returnfetch(“/api/graphql”、{[…]}
更改为
returnfetch(“/graphql”、{[…]}
,但这可能取决于我的后端配置