我的第一次嘗試是在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