request
dostaje przekierowań domyślnie, można go dostać za 10 przekierowań domyślnie. Możesz to sprawdzić w docs. Wadą tego jest to, że nie wiesz, czy adres URL jest domyślnie przekierowywany czy oryginalny.
Na przykład:
request('http://www.google.com', function (error, response, body) {
console.log(response.headers)
console.log(body) // Print the google web page.
})
daje argumenty wyjściowe
> { date: 'Wed, 22 May 2013 15:11:58 GMT',
expires: '-1',
'cache-control': 'private, max-age=0',
'content-type': 'text/html; charset=ISO-8859-1',
server: 'gws',
'x-xss-protection': '1; mode=block',
'x-frame-options': 'SAMEORIGIN',
'transfer-encoding': 'chunked' }
ale jeśli dać opcję followRedirect
jako fałszywą
request({url:'http://www.google.com',followRedirect :false}, function (error, response, body) {
console.log(response.headers)
console.log(body)
});
daje
> { location: 'http://www.google.co.in/',
'cache-control': 'private',
'content-type': 'text/html; charset=UTF-8',
date: 'Wed, 22 May 2013 15:12:27 GMT',
server: 'gws',
'content-length': '221',
'x-xss-protection': '1; mode=block',
'x-frame-options': 'SAMEORIGIN' }
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/">here</A>.
</BODY></HTML>
Nie martw się więc o przekierowanie zawartości. Ale jeśli chcesz się dowiedzieć, czy jest przekierowywany, czy nie, ustaw wartość false i sprawdź nagłówek location
w odpowiedzi.
Powiedziałeś, że powyższy kod przekierowuje trzy razy, skąd mam wiedzieć, który z nich jest ostatnią iteracją? – hitautodestruct
Nie przekierowuje trzy razy. Drukuje adres URL, do którego przekierowano, na trzy różne sposoby. Przepraszam, jeśli to było niejasne. – gabrielf
@gabrielf, Nie "this", ponieważ możemy użyć 'es6'. –