creact-react-app v5
当然不是v5 下面的方法也适用。
修改时需要 npm start重新运行一下,要不然可能不生效,下面两种方式都是如此!!!。
其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。
proxy只能以 或开头 否则会报:
When “proxy” is specified in package.json it must start with either or :
示例:
比如后端给的完整地址如下:
:8080/fund_diag/fund_home/select_by_fund
这一段是相同的地址(也就是所有接口都是这个前缀),根据你的接口来定。
"proxy": ":8080/fund_diag"
然后使用即可 比如 axios url直接请求就行代码如下:
request就是axios 只是我又封装了一层。
// (url, { params })("/fund_home/select_by_fund?fund=1001").then(res=>{console.log(res);})
然后启动项目就可以看到请求成功了(不配置proxy是成功不了的,因为跨域了)。
network截图:
1.安装 http-proxy-middleware
npm install --save http-proxy-middleware
2.在src下新建 setupProxy.js 文件名必须是这个 然后配置一下即可。
const { createProxyMiddleware } = require('http-proxy-middleware');
ports = function(app) {app.use('/api',createProxyMiddleware({target: ':8080/fund_diag', //代理的地址changeOrigin: true,pathRewrite: {'^/api': '' // 将请求路径中的 "/api" 替换为 ""}}))};
axios使用/api/xx 即可走代理:
// (url, { params })("/api/fund_home/select_by_fund?fund=1001").then(res=>{console.log(res);})
示例:
比如后端给的完整地址如下:
:8080/fund_diag/fund_home/select_by_fund
:8080/fund_diag这段是接口的前缀,也就是每个接口都有这段。所以 我target 配置为 ::8080/fund_diag
当然 具体需需要怎么配置,根据你的接口来定
network截图:
本文发布于:2024-02-04 19:43:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170715037758944.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |