先下载 http-proxy-middleware,使用 http-proxy-middleware 解决跨域问题,通过 npm i http-proxy-middleware --save 命令下载 http-proxy-middleware。
创建 src/setupProxy.js,代码如下所示:
const proxy = require("http-proxy-middleware");module.exports = function (app) {// proxy第一个参数为要代理的路由 app.use(proxy("/data", { target: "http://localhost", //配置你要请求的服务器地址,代理后的请求网址 pathRewrite: {'^/data': ''}, //路径重写 changeOrigin: true, // 是否改变请求头 })) app.use(proxy("/rest", { target: "http://localhost/rest", pathRewrite: {'^/data': ''}, changeOrigin: true, }))};通过 npm run eject 或者是 yarn eject 命令,让 react 项目中的配置文件暴露出来。
在暴露后的配置文件中,start.js 里面做一下配置,如下所示:
require('../src/setupProxy')(devServer);在 webpack.dev.conf.js 中的 devServer 项进行配置,webpack 文件是自己配置的, 没有暴露 create-react-app 的 eject 文件,代码如下所示:
devServer: { // 配置webpack-dev-server, 在本地启动一个服务器运行 host: 'localhost', // 服务器的ip地址 希望服务器外可以访问就设置 0.0.0.0 port: 8088, // 端口 open: true, // 自动打开页面 historyApiFallback: true, proxy: { "/v1": { "target": "https://www.google.com/", "changeOrigin": true } } },