繁体   English   中英

节点http-proxy-middleware不能与本地服务器一起使用作为目标

[英]Node http-proxy-middleware not working with local servers as targert

我有一个节点服务器,我使用http-proxy-middleware代理我的api请求,类似于这篇文章中发生的事情。 当我代理到真正的生产服务器时,一切正常,但是当我将代理指向本地服务器时,它只是不起作用。

这是我的代码:

app.use('/_api', proxy({target: 'http://localhost:9000', changeOrigin: true}));

服务器上:

http://localhost:9000/hello正在运行(我可以从我的浏览器访问它),但是,当我尝试从我自己的服务器访问它时,如下所示:

http://localhost:3000/_api/hello

我正进入(状态:

不能GET / _api /你好

如果我用真正的服务器替换localhost:9000,一切正常......

您的代理请求正在尝试使用原始请求路径访问本地服务器。

例如,当您提出要求时

http://localhost:3000/_api/hello

您的代理正在尝试访问

http://localhost:9000/_api/hello

您的localhost:9000上不存在_api/hello路径,由Cannot GET /_api/hello错误显示。

您需要重写代理请求路径以删除_api部分:

app.use('/_api', proxy({
    target: 'http://localhost:9000', 
    changeOrigin: true,
    pathRewrite: {
        '^/_api' : '/'
    }
}));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM