समान-डोमेन AJAX के मुद्दों से बचने के लिए, मैं चाहता हूं कि मेरा नोड। Js वेब सर्वर URL /api/BLABLA
से किसी अन्य सर्वर के लिए सभी अनुरोधों को अग्रेषित करें, उदाहरण के लिए other_domain.com:3000/BLABLA
, और उपयोगकर्ता को उसी चीज़ पर वापस लौटाएं जो यह रिमोट सर्वर पारदर्शी रूप से लौटा है।
अन्य सभी URL (बगल में /api/*
) सीधे परोसे जाने हैं, कोई भी आसन्न नहीं है।
मैं इसे नोड.जेएस + एक्सप्रेस.जेएस के साथ कैसे प्राप्त कर सकता हूं? क्या आप एक सरल कोड उदाहरण दे सकते हैं?
(वेब सर्वर और रिमोट 3000
सर्वर दोनों मेरे नियंत्रण में हैं। दोनों नोड के साथ चल रहे हैं। एक्सप्रेस के साथ जेएस)
अब तक मुझे यह https://github.com/http-party/node-http-proxy मिला है , लेकिन वहां के डॉक्यूमेंटेशन को पढ़ने से मुझे कोई समझदार नहीं लगा। मैं खत्म हो गया
var proxy = new httpProxy.RoutingProxy();
app.all("/api/*", function(req, res) {
console.log("old request url " + req.url)
req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part
console.log("new request url " + req.url)
proxy.proxyRequest(req, res, {
host: "other_domain.com",
port: 3000
});
});
लेकिन मूल वेब सर्वर (या अंतिम उपयोगकर्ता) को कुछ भी नहीं लौटाया जाता है, इसलिए कोई भाग्य नहीं।