4

进入我的组件

axios.post('/api/' + 'create', {
  name: 'new name'
}, 
{
                headers:
                {
                    'Content-Type': 'application/json'
                }
}
)

进入 setupProxy.js ,根据第三方官方指令创建https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development

const proxy = require('http-proxy-middleware');

module.exports = function (app) {
    app.use(proxy('/api/', {
        target: 'http://my-api.com/',
        changeOrigin: true
    }));
};

当我使用 axios 从我的应用程序调用方法到浏览器控制台时,写入 POST http://localhost:3000/api/create 404 (Not Found)

我尝试将 /api/* 和 /api/** 写入配置 http-proxy-middleware ,但这对我没有帮助。

什么不起作用?

4

2 回答 2

1

请尝试使用以下代码,从http-proxy-middleware版本1.0.0开始,您不能使用代理作为名称。

const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = (app) => {
  app.use(createProxyMiddleware('/api',
  { target: 'http://localhost:3001/' 
  }));
}

注意:从这里的 PR 讨论之一中找到了这个:https ://github.com/facebook/create-react-app/issues/8550

于 2020-07-29T12:59:27.020 回答
0

我知道它已经晚了,我遇到了同样的问题。保留对我有用的东西,以便其他人可以尝试。

我代理了这个端点 - https://services.odata.org/V2/Northwind/Northwind.svc/Customers?$format=json

setupProxy.js

const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = (app) => {
    app.use(createProxyMiddleware('/api2', {
        target: 'https://services.odata.org/V2/Northwind/Northwind.svc/',
        changeOrigin: true,
        pathRewrite: { '^/api2': '' }
    })
    );
}

你的 .js 文件

triggerCORSCall() {
    axios.get(`/api2/Customers?$format=json`)
      .then(response => {
        alert('Success');
      }).catch(error => {
        alert('Failure');
        console.log(error);
      })
  }
于 2021-07-01T09:34:08.727 回答