React

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > React > React ts使用http-proxy-middleware代理时访问报404

React ts模式使用http-proxy-middleware代理时访问报404问题

作者:pg_li

这篇文章主要介绍了React ts模式使用http-proxy-middleware代理时访问报404问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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的参数

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文