我的第一次尝试是在Express中制作一个反向代理,它允许我请求localhost:3000/request
并将其转发到somesite.com/request
。进行跨域请求,同时保留原始IP地址
我的代码是:
var request = require('request');
app.get('/', function(req,res) {
var newurl = 'http://google.com/';
request(newurl).pipe(res);
});
这个问题这一点,是它改变了请求的IP地址,到我的服务器的IP。
我的下一个尝试是JSONP,即使这是一个HTML网页,而不是一个JSON文件。
var tag = document.createElement("script");
tag.src = 'http://example.com/search?q=test';
document.getElementsByTagName("head")[0].appendChild(tag);
的错误,这是:Uncaught SyntaxError: Unexpected token <
是的,如果您从服务器向另一台服务器发出请求,那么当然,请求到其他服务器的请求的IP地址来自您的服务器。你还会期待什么? A到B的请求将显示它来自A的IP地址。 – jfriend00
实际上,如果通信将返回到Express服务器,那么根据定义,请求来自的IP地址必须是您的Express服务器以便数据可以发回到Express服务器的IP地址。 – jfriend00
@ jfriend00我希望将传入的IP地址传递给我的Web服务器。我以为我必须像CloudFlare那样传递自定义标题。 https://easyengine.io/tutorials/nginx/forwarding-visitors-real-ip/ – User