request
được đổi hướng theo mặc định, nó có thể nhận được thông qua 10 trang đổi hướng theo mặc định. Bạn có thể kiểm tra điều này trong docs. Nhược điểm của điều này là bạn sẽ không biết nếu url bạn nhận được là một chuyển hướng hoặc một bản gốc theo tùy chọn mặc định.
Ví dụ:
request('http://www.google.com', function (error, response, body) {
console.log(response.headers)
console.log(body) // Print the google web page.
})
cho sản lượng
> { 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' }
nhưng nếu bạn đưa ra lựa chọn followRedirect
như sai
request({url:'http://www.google.com',followRedirect :false}, function (error, response, body) {
console.log(response.headers)
console.log(body)
});
nó mang lại cho
> { 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>
Vì vậy, đừng lo lắng về việc nhận được nội dung được chuyển hướng. Nhưng nếu bạn muốn biết liệu nó có được chuyển hướng hay không được đặt followRedirect
sai và kiểm tra tiêu đề location
trong phản hồi.
Bạn đã nói rằng mã trên chuyển hướng ba lần, làm thế nào để tôi biết chạy là lần lặp cuối cùng? – hitautodestruct
Nó không chuyển hướng ba lần. Nó in URL bạn đã được chuyển hướng đến theo ba cách khác nhau. Xin lỗi nếu điều đó không rõ ràng. – gabrielf
@gabrielf, Không có 'this', bởi vì chúng ta có thể sử dụng 'es6'. –