Javascript 在响应请求之前,web服务器可以通过什么方式检查是否重定向现有页面上的GET请求?
我正在尝试使用Node.js(使用request npm模块)向第三方(不在我的控制下)web服务器发送HTTP GET请求,服务器正在将其重定向到登录页面。它拒绝发送页面,因为我没有登录 由于重定向不能在客户端发生(我正在请求页面,而不是解析页面),我不明白web服务器如何在决定是否向我发送页面之前检查本地数据或Cookie以查看我(我的HTTP GET请求)是否已登录 我的问题 在响应请求之前,web服务器可以以何种方式检查是否重定向现有页面上的GET请求 我的代码Javascript 在响应请求之前,web服务器可以通过什么方式检查是否重定向现有页面上的GET请求?,javascript,node.js,http,get,Javascript,Node.js,Http,Get,我正在尝试使用Node.js(使用request npm模块)向第三方(不在我的控制下)web服务器发送HTTP GET请求,服务器正在将其重定向到登录页面。它拒绝发送页面,因为我没有登录 由于重定向不能在客户端发生(我正在请求页面,而不是解析页面),我不明白web服务器如何在决定是否向我发送页面之前检查本地数据或Cookie以查看我(我的HTTP GET请求)是否已登录 我的问题 在响应请求之前,web服务器可以以何种方式检查是否重定向现有页面上的GET请求 我的代码 var request
var request = require('request');
function checkUsername(username) {
request({
uri : "http://www.kongregate.com/accounts/" + username + "/recently-played",
method : "GET",
timeout : 10000,
//in order to avoid being redirected to the login page, I've used:
followRedirect : false,
maxRedirects : 0
}, function(error, response, body) {
if (error)
console.log("Player does not exist");
else {
console.log("Player exists!");
}
}
});
}
checkUsername("jonathan_t0dd");
这样可以避免成功重定向,但会提供html:
<html><body>You are being <a href="http://www.kongregate.com/session/new">redirected</a>.</body></html>
您正在被删除。
我希望以一种能够让我理解如何向服务器提供成功服务我请求的资产所需的任何数据的方式来理解这个场景
我不明白web服务器如何在决定是否向我发送页面之前检查本地数据或Cookie以查看我(我的HTTP GET请求)是否已登录
Cookies随每个HTTP请求一起发送到服务器。这就是饼干的要点。因此,几乎可以肯定的是,只需查看Cookie即可。浏览器将向服务器发送Cookie,以便web服务器知道您是否已登录 如果您想手动执行此操作,您可以查看网站在浏览器中设置的cookies,并将其添加到您的请求中 模块
request
具有设置cookie的api,例如:
var j = request.jar()
var cookie = request.cookie('your_cookie_here')
j.setCookie(cookie, uri);
request({url: 'http://www.google.com', jar: j}, function () {
request('http://images.google.com')
})
访问查看详细信息。该页面的工作方式可能与您认为的相反。默认情况下,它会发送登录页面,但如果存在登录cookie,它会将您重定向到page.ook。我不知道Cookie已发送到服务器。我对cookies的目的的想法是,在浏览器提供本地存储之前,cookies被保存为本地存储,用于跨页面信息传输。