【问题标题】:How to get to the redirected page using Request and NodeJS如何使用 Request 和 NodeJS 访问重定向页面
【发布时间】:2015-03-25 10:11:06
【问题描述】:

我正在使用 Request、Jsdom 和 NodeJS 来登录网页。根据Request api

followRedirect - 遵循 HTTP 3xx 响应作为重定向(默认值:true)。这个属性也可以实现为函数,它将响应对象作为单个参数获取,如果重定向应该继续,则返回 true,否则返回 false。

鉴于这默认为 true,我认为该请求会给我重定向页面,而不是中间的重定向页面。

我的代码:

    request(loginPageURL, function(error, response, body) {
    /*Error handling removed for brevity*/
        jsdom.env({
            html: body,
            scripts: [
                'http://code.jquery.com/jquery-1.7.1.min.js'
            ],
            done: function(err, window) {
                //Set login fields  
                var form = $('#authorizationForm');
                var data = form.serialize();
                var url = form.attr('action') || 'get';
                var type = form.attr('enctype') || 'application/x-www-form-urlencoded';
                var method = form.attr('method');

                request({
                    url: url,
                    method: method.toUpperCase(),
                    body: data,
                    headers: {
                        'Content-type': type
                    }
                }, function(error, response, body) {
                    if (!error) {
                        console.log("Response.statusCode:" + response.statusCode);
                        console.log("Body:" + body);

登录后没有给我主页,而是输出:

Response.statusCode: 302
Body: To access this site, go to <a href="...">

虽然从重定向页面获取代码可能很有用,但我如何跳到它将我重定向到的页面?

【问题讨论】:

    标签: javascript node.js redirect request jsdom


    【解决方案1】:

    这是一个非 GET 请求吗?然后需要显式设置followAllRedirects: true

    followAllRedirects - 遵循非 GET HTTP 3xx 响应作为重定向(默认:false

    https://github.com/request/request

    followRedirect 的文档令人困惑,因为它们似乎并未表明 followRedirect 仅适用于 GET。)

    【讨论】:

    • 感谢@Emmett!由于身份验证/cookie 设置,我还需要将 jar 上的请求默认设置为 true。
    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2014-07-05
    • 2021-01-04
    • 2023-03-29
    • 2016-09-03
    相关资源
    最近更新 更多