React ts模式使用http-proxy-middleware代理时访问报404
create-react-app脚手架创建Recat应用,选择的是TypeScript
根据http-proxy-middleware文档 在src目录创建setupProxy.js,一直报错
const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use( createProxyMiddleware('/custom', { target: 'http://127.0.0.1:7001', changeOrigin: true, // needed for virtual hosted sites ws: true, // proxy websockets pathRewrite: { '^/custom': '' } }) ) };
解决方式
将setupProxy.js复制一份后缀改成ts可正常访问(setupProxy.ts setupProxy.js)
http-proxy-middleware的坑
react项目启动,页面显示“无法访问网站”,原因之一是代理脚本(setupProxy.js)的语法与版本对应不上。
解决方法:
旧版本写法
在src下新建setupProxy.js;
const proxy = require("http-proxy-middleware") module.exprots = function (app) { app.use( proxy('/api1', { target: 'http://localhost:5000', changeOrigin: true, // 控制服务器收到的请求头host字段的值 pathRewrite: { '^/api1': '' } // 路径重写 }) ) }
新版本写法
在src下新建setupProxy.js;
const { createProxyMiddleware } = require('http-proxy-middleware') module.exports = function (app) { app.use('/api', createProxyMiddleware({ target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { "^/api": "/api" } })) }
注意!!!!!!
两种写法的前缀位置是不一样的,旧版本是作为proxy的参数,新版本是app.use的参数
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源链接:https://www.jb51.net/javascript/324152ri2.htm
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容