【发布时间】:2014-11-24 14:40:26
【问题描述】:
如何在nodejs中使用查询字符串参数代理请求,我目前使用的是express和http-proxy?
我有一个 nodejs 应用程序,它使用 express 和 http-proxy 模块将 HTTP GET 请求从我端的某些路径代理到在同一服务器上但不同端口上运行的第三方 API(因此遭受同源问题,需要代理)。这工作正常,直到我想使用查询字符串参数(即“?name = value”)在后端 API 上调用 REST 函数。然后我得到一个 404。
var express = require('express');
var app = express();
var proxy = require('http-proxy');
var apiProxy = proxy.createProxyServer();
app.use("/backend", function(req,res){
apiProxy.web(req,res, {target: 'http://'+ myip + ':' + backendPort + '/RestApi?' + name + '=' + value});
});
Chrome 的控制台显示:
"GET http://localhost:8080/backend 404 (Not Found)"
注意:我稍后会在 express 中使用其他内容,但不会在代理行之前使用,并且在路由路径时我从更具体到更一般。可以使用相同的协议直接在浏览器中访问后端://url:port/path?name=value 没有问题。
【问题讨论】:
-
我遇到了同样的问题。你找到解决办法了吗?
-
@Laoujin 还没有解决办法。我解决了这个问题,而不是修复它。我真的应该去看看 http-proxy 代码并找到问题,我很确定它应该支持这个用例。
标签: node.js proxy http-proxy node-http-proxy