2
나는 Node.js를 사용하고 있지만이 반드시 단지 노드와 관련이없는 느낌이 - 어쨌든무한 리디렉션
내가 노드에서 단축 URL을 쓰고 있어요, 그리고 내가 페이지 제목을 얻으려면 단축 URL을 사용하고 싶습니다. 대부분의 경우 작동합니다. 보통 리디렉션을 따라야합니다.
그러나 gmail.com을 클릭하면 무한 리디렉션 루프가됩니다. http://gmail.com은 https://www.google.com/accounds/ServiceLogin?service=mail&passive=true&rm=false&continue=으로 리디렉션됩니다. ...... 차례 차례로 영원히 그 자체로 방향을 바꾼다.
내 코드는 기본적으로 같은
var http = require('http'),
https = require('https'),
URL = require('url'),
querystring = require('url');
var http_client = {};
function _makeRequest(url, callback) {
var urlInfo = URL.parse(url);
var reqUrl = urlInfo.pathname || '/';
reqUrl += urlInfo.search || '';
reqUrl += urlInfo.hash || '';
var opts = {
host: urlInfo.hostname,
port: urlInfo.port || (urlInfo.protocol == 'https' ? 443 : 80),
path = reqUrl,
method: 'GET'
};
var protocol = (urlInfo.protocol == 'https' ? https : http);
var req = protocol.request(opts, function(res) {
var content = '';
res.setEncoding('utf8');
res.addListener('data', function(chunk) {
content += chunk;
});
res.addListener('end', function() {
_requestReceived(content, res.headers, callback);
});
});
req.end();
};
function _requestReceived(content, headers, callback) {
var redirect = false;
if(headers.location) {
newLocation = headers.location
redirect = true;
}
if(redirect) {
console.log('redirecting to :'+newLocation);
_makeRequest(newLocation, callback)
} else {
callback(null, content);
}
};
네입니다!
무엇이 당신의 질문은 무엇입니까? – dhofstet
무한정으로 리디렉션되지 않도록 어떻게 중지합니까? Gmail에서 리디렉션 헤더를 계속 보내고 있습니다. – Lowgain