Javascript “请求的URL”;[无URL]”;,这是无效的。节点http代理
我认为我缺少此处设置的代理的基本部分,但在使用以下内容时:Javascript “请求的URL”;[无URL]”;,这是无效的。节点http代理,javascript,node.js,proxy,Javascript,Node.js,Proxy,我认为我缺少此处设置的代理的基本部分,但在使用以下内容时: var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createProxyServer({target:'http://www.asos.com'}).listen(8000); http.createServer(function (req, res) { res.writeHead(200, { 'Conte
var http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://www.asos.com'}).listen(8000);
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
提交人:
Invalid URL
The requested URL "[no URL]", is invalid.
Reference #9.56731002.1508760714.1524ffde
现在我很确定这是一个输入到代理中的url
我要做的就是设置一个站点的代理,然后插入一些自定义js文件。但这是第一步。与您在评论中所说的相反,您尝试访问
localhost:8000
是正确的。这是您创建的代理的正确端口
您需要添加以下内容:
changeOrigin: true
全文:
httpProxy.createProxyServer({
changeOrigin: true,
target: 'http://www.asos.com'
}).listen(8000);
如果没有这个设置,远程服务器将接收到一个带有头Host:localhost:8000
的请求,并且这个特定的服务器似乎关心Host
头(可能它使用的是虚拟主机)。因此,它将不知道如何处理它,并返回该错误。代理正在成功代理来自远程服务器的错误消息
您显然是从httpproxy
文档中复制了代码,但您似乎误解了它。请注意,在原始示例中,代理目标
是localhost:9000
,它与它随后创建的服务器相同。因此,该示例的目的是访问localhost:8000
,并将请求代理到localhost:9000
。你想要做的是完全不同的。您的代码正在创建两个完全独立的服务器,一个在端口8000上,另一个在端口9000上
与其使用
listen
方法,不如查看web
方法的示例。您在何时何地看到此错误消息?事实上,我是个傻瓜。我正在访问localhost:8000。。。现在它工作了。如果你想为其他傻瓜添加答案,我会接受。我也很乐意删除这个问题,这取决于其他人是否能从中受益?我个人认为他们会,因为这会节省我几(15)分钟的时间,真的,很大的帮助。我错过了这整件事,然后跳过去完成它。感谢您指出这一点:web req、res、[options](用于代理常规HTTP(S)请求)ws req、socket、head、[options](用于代理ws(S)请求)listen port(为方便起见,将对象包装在web服务器中的函数)close[callback](关闭内部web服务器并停止在给定端口上侦听的函数)现在,我需要确定是否需要运行服务器,我需要一些逻辑来在加载之前向页面添加一些文件,因此我想象一个listen
和一个web
看起来,在asos.com
上执行代理实际上非常困难,因为它大约有4个reidrects:O