当前位置: 首页 > 面试题库 >

如何从nodejs请求模块获取重定向的URL?

庄嘉
2023-03-14
问题内容

我正在尝试通过使用nodejs request模块将我重定向到另一个页面的URL

梳理文档后,我找不到任何可以让我在重定向后检索网址的内容。

我的代码如下:

var request = require("request"),
    options = {
      uri: 'http://www.someredirect.com/somepage.asp',
      timeout: 2000,
      followAllRedirects: true
    };

request( options, function(error, response, body) {

    console.log( response );

});

问题答案:

有两种非常简单的方法来获取重定向链中的最后一个URL。

var r = request(url, function (e, response) {
  r.uri
  response.request.uri
})

uri是一个html" target="_blank">对象。uri.href包含带有查询参数的URL作为字符串。

该代码来自请求创建者对github问题的评论:https
:
//github.com/mikeal/request/pull/220#issuecomment-5012579

例:

var request = require('request');
var r = request.get('http://google.com?q=foo', function (err, res, body) {
  console.log(r.uri.href);
  console.log(res.request.uri.href);

  // Mikael doesn't mention getting the uri using 'this' so maybe it's best to avoid it
  // please add a comment if you know why this might be bad
  console.log(this.uri.href);
});

这将打印http://www.google.com/?q=foo
3次(请注意,我们从一个不带www的地址重定向到一个带有www的地址)。



 类似资料:
  • 问题内容: 我在JSF2中使用PrimeFaces。我正在尝试通过将登录名和密码作为Ajax请求发送来对用户进行身份验证。在备用bean的操作方法中,我尝试验证用户,如果验证成功,则重定向到新视图。 使用primefaces可以吗? 因为我认为使用primefaces’ ,所以我只能具有ajax行为或导航。 问题答案: 是的,仅发送重定向而不是(默认)转发作为结果。该稀少JSF 2.0的方式将被追

  • 我正在尝试使用重定向规则设置静态web托管。在我的应用程序中,任何具有前缀api/(http://web.company.com/api)的请求都应该重定向到具有相同前缀(http://api.company.com/api)的另一个主机。我已按以下方式设置路由规则: 但请求没有被正确重定向。控制台中有两个不同的错误: XMLHttpRequest无法加载http://api.company.co

  • 如何从HttpSessionAttributeListener获取请求对象以查找用户的IP地址? 谢谢

  • 问题内容: 在Python中,我使用urllib2打开一个URL。该URL重定向到另一个URL,该URL重定向到另一个URL。 我希望在每次重定向后打印出网址。 例如 -> =重定向到 A-> B-> C-> D 我想打印B,C和D的URL(A是已知的,因为它是起始URL)。 问题答案: 最好的方法可能是继承。深入Python的重定向一章可能会有所帮助。

  • 我正在使用Spring5WebClient从RESTAPI重复获取运行进程的某些状态。 在这里的帮助下,我现在找到了这个解决方案: 在这种情况下,get请求以非常高的速率触发。什么是正确的方法来限制请求速率,让我们说每秒1个请求? 我尝试使用,但这只会延迟结果,而不会延迟请求本身。

  • 问题内容: 我想从一个URL请求重定向到另一个“ POST”请求,如下所示: 但是,我无法重定向到“ / test”页面,因为它是POST请求。 那么,在保持“ / test”请求POST的情况下,如何使重定向工作呢? 问题答案: 你可以这样做: 它将保留send方法。 供参考,307 http代码规范为: 307临时重定向(自HTTP / 1.1起)在这种情况下,应使用另一个URI重复请求,但是