首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何知道我将被重定向到的url?[nodejs] [node-fetch]

在Node.js中,可以使用node-fetch库来发送HTTP请求并获取重定向的URL。下面是一个示例代码:

代码语言:txt
复制
const fetch = require('node-fetch');

async function getRedirectUrl(url) {
  const response = await fetch(url, { redirect: 'manual' });
  if (response.status === 301 || response.status === 302) {
    return response.headers.get('location');
  } else {
    return null;
  }
}

// 使用示例
const url = 'https://example.com';
getRedirectUrl(url)
  .then(redirectUrl => {
    if (redirectUrl) {
      console.log(`重定向到: ${redirectUrl}`);
    } else {
      console.log('没有重定向');
    }
  })
  .catch(error => {
    console.error('发生错误:', error);
  });

上述代码中,我们使用了node-fetch库来发送HTTP请求,并通过设置redirect: 'manual'参数来禁止自动重定向。然后,我们检查响应的状态码,如果是301或302,则通过response.headers.get('location')获取重定向的URL。

这个方法适用于Node.js环境下的重定向检测,可以帮助我们获取重定向后的URL。在实际应用中,可以根据需要进行封装和扩展,以满足具体的业务需求。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

嗯,还在用Ajax嘛? Fetch了解一下呀!

一旦Response被返回,就可以使用一些方法来定义内容形式,以及应当如何处理内容,你也可以通过 Request() 和 Response() 构造函数直接创建请求和响应,但是我们不建议这么做。...环境准备 这里我们用Node环境来学习,当然在浏览器更有可比性,需要安装基于Node依赖包node-fetch,这里一定要注意版本问题 node-fetch用于服务器端,即只能在nodejs中用 whatwg-fetch...用于客户端,即用于在浏览器没有原生支持fetch情况 isomorphic-fetch可以在nodejs和浏览器两种环境中运行,是对whatwg-fetch包装。...200 299,false对应其他状态码。...} ] [Done] exited with code=0 in 0.25 seconds Response 对象还有一个Response.redirect()方法,用于将 Response 结果重定向指定

5K10
  • 实现一个 Code Pen:(五)白嫖云数据库

    我们知道使用 Next.js vercel 就可以帮我们自动部署,vercel 提供了网站托管和 serverless(函数即服务)能力, 但是 vercel 没有提供数据库存储能力,那么需要买数据库吗...保存代码后选择上传部署,至此云函数开发完成,那么要如何在我们项目中对接呢?...下面代码是服务端请求数据代码 import fetch from 'node-fetch' export function get({ id }) { return fetch(process.env.NEXT_PUBLIC_API_URL...nodejs 版本是 14,所以数据请求,还不支持 fetch,我们还需要安装 node-fetch 小结 预览地址:https://code.runjs.cool/pen/create 代码仓库:https...://github.com/maqi1520/next-code-pen 本篇主要介绍如何使用 uniapp 中云函数和云数据库,并且通过云函数 URL 化,来给外部应用访问,其中保存数据和请求数据部分是常规代码

    1.3K51

    request 已废弃 - 推荐一个超快 Node.js HTTP Client undici

    request 这是一个在之前几乎接触过 Node.js 朋友都会用到 HTTP 请求工具,有些朋友或许还不知道,这个工具在 2020 年 2 月 11 日已经标记为弃用,在 NPM 基本上搜索不到了...今天想给大家推荐是一个新 Node.js HTTP Client undici,它比内置 HTTP 模块还要快,下文有基准测试数据。...或 URL 对象,它仅包括协议、主机名、端口,用于预先创建一个基础通用客户端请求实例。...当用户期望直接将 response body 传递 Writable 时,通过避免创建一个中间 Readable 来提高性能。...WHATWG fetch 实现,就像你之前使用 node-fetch 一样,你可以选择使用 undici-fetch 简单处理一些请求。

    1.4K10

    用编程破解了细节狂魔何同学秘密

    大家好,是大帅,一个老程序猿。 前言 最近B站刚刚颁布了2021年百大UP,要说最喜欢UP,那必然是 @老师好叫何同学。何同学每一个视频都让感觉很惊艳,那么有创意。...image.png 果真是个细节狂魔~ 并不知道何同学具体是如何实现,但作为一个热爱编程老程序猿,思路很快就在脑海里浮现出来了。...经过一天疯狂敲代码,已经完全实现了和何同学一样效果,无需服务器无需打开电脑,每天会自动更新。代码已在github开源,如果你只是想使用它,不想知道技术细节,请直接跳到最后看使用教学。...手把手实现它 好,接下来你会学习 如何抓取B站请求 在nodejs里生成图片 获得用户最新投稿计算日子 github action定时任务 如何抓取B站请求 自动前提是手动,所以我们要先了解自己要如何操作才可以更换个人空间头图...就是bili_jct 如果是自己用,那么你只需要生成图片并转为base64编码后通过topphoto参数提交给B站接口就可以了 在nodejs里生成图片 在网页里生成图片大概率你知道要用canvas,在

    1.1K20

    request 已废弃 - 推荐一个超快 Node.js HTTP Client undici

    request 这是一个在之前几乎接触过 Node.js 朋友都会用到 HTTP 请求工具,有些朋友或许还不知道,这个工具在 2020 年 2 月 11 日已经标记为弃用,在 NPM 基本上搜索不到了...今天想给大家推荐是一个新 Node.js HTTP Client undici,它比内置 HTTP 模块还要快,下文有基准测试数据。...或 URL 对象,它仅包括协议、主机名、端口,用于预先创建一个基础通用客户端请求实例。...当用户期望直接将 response body 传递 Writable 时,通过避免创建一个中间 Readable 来提高性能。...WHATWG fetch 实现,就像你之前使用 node-fetch 一样,你可以选择使用 undici-fetch 简单处理一些请求。

    3K60

    nodejs写bash脚本终极方案!

    后来就开始探索,如果用node脚本代替bash该多好啊,经过一天折腾逐渐发现一个神器,Google旗下zx库,先别着急,先不介绍这个库,我们先看看目前主流用node如何编写bash脚本,就知道为啥它是神器了...exec:启动一个子进程来执行命令,与spawn不同是,它有一个回调函数能知道子进程情况 execFile:启动一子进程来执行可执行文件 fork:与spawn类似,不同点是它需要指定子进程需要需执行...== 0) { shell.echo('Error: Git commit failed'); shell.exit(1); } 从上面代码上看来,shelljs真的已经算是非常棒nodejs...写bash脚本方案了,如果你们那边node环境不能随便升级,觉得shelljs确实够用了。...`ls -1 | wc -l`) console.log(`Files count: ${count}`) 例如,要并行上传文件: 如果执行程序返回非零退出代码,ProcessOutput 将被抛出

    3.9K20

    Generator 异步原理

    从实际应用场景开始 假设我们有一个异步请求,想要去通过api获取一些数据。这里借助node-fetch库来获取数据。...关于promise这里不多说,fetch返回就是一个promise。 genetor实现 那么如果使用generator会如何实现实现同样一个异步操作呢? 这里先给结果,再来分析实现原理。...outer对话,遇到yield,genetor会说:"知道怎么搞这个promise,你来搞吧,给你..“ 于是,外面的就会接住这个promise 我们继续写 function run(generator...,genetor中response拿到了值,就等于这里x } 分析这里,程序已经得到了response。...嗯,拿到你们处理结果了,下一次遇到yield还给你们,反正不会,也不会学,这任务都是你们。 也就是说,genetor异步,就在于能将线程弹出,遇到yield后,交出线程。

    65720

    测试驱动开发 Nginx 配置

    其中一个很关键步骤是把原系统 URL 通过重定向方式产品中,因为有很多第三方链接和搜索引擎依然保留了原系统中链接。...初步统计了一下,将近有3000多个 URL 需要重定向,光是规则和正则表达式就写了 400 多条(没有统一规则 URL 害死人啊),这就引发了一个问题:如何验证这些规则和覆盖这些 URL ?...此外,大量重定向不光对用户来讲不是很好体验,如果要优化这些规则,如何保证当前转发规则不被破坏?...,这相当是对 Nginx 规则开发回归测试——不会影响以前 URL 重定向。...减少重定向 我们知道,每一次重定向都会给客户端带来额外访问开销,这对用户体验是一种灾难。

    83710

    nodejs 写 bash 脚本终极方案!

    后来就开始探索,如果用node脚本代替bash该多好啊,经过一天折腾逐渐发现一个神器,Google旗下zx库,先别着急,先不介绍这个库,我们先看看目前主流用node如何编写bash脚本,就知道为啥它是神器了...exec:启动一个子进程来执行命令,与spawn不同是,它有一个回调函数能知道子进程情况 execFile:启动一子进程来执行可执行文件 fork:与spawn类似,不同点是它需要指定子进程需要需执行...== 0) { shell.echo('Error: Git commit failed'); shell.exit(1); } 复制代码 从上面代码上看来,shelljs真的已经算是非常棒nodejs...写bash脚本方案了,如果你们那边node环境不能随便升级,觉得shelljs确实够用了。...你点赞、在看和关注是对最大支持!

    2.5K20

    在Node.js中发出HTTP请求7种方法

    对于新开发人员而言,学习如何发出HTTP请求以交换数据可能是具有挑战性。 幸运是,对于Node.js开发人员而言并非如此。 有许多经过考验解决方案可用于发出任何种类HTTP请求。...SuperAgent有许多插件可以执行不同任务,例如不进行缓存,URL前缀和后缀等。您可以轻松编写自己插件来扩展SuperAgent功能。...您可以在终端中使用以下命令从npm安装node-fetch: $ npm install node-fetch --save 与Axios相似,最新node-fetch版本支持Promises。...它仅说明HTTP功能在Node.js中某些最流行HTTP客户端中如何工作。...Node.js还有许多其他HTTP客户端可用,例如simple-get,它提供了最简单方法来发出HTTP请求,并支持少于100行HTTPS,重定向和流。

    25K20

    【实战】Next.js + 云函数开发一个面试刷题网站

    next 项目 npx create-next-app next-interview cd next-interview 进入 next-interview 目录下安装 tailwindcss 相关...default Page 注意:getServerSideProps函数是在 Nodejs 环境下执行,若部署 node 版本低于 17,则需要先安装node-fetch 到此,你已经了解了整个开发流程...而默认是部署区域在美国华盛顿特区,而 uniCloud 云函数则是部署在上海,也就一个请求在发出,在上海和美国盛顿特来了个往返。...这个网站也开源了,包含一些前端常用工具,还可以在线刷面试题。...前端工具箱 GitHub 代码 以上就是本文全部内容,希望这篇文章对大家有所帮助,也可以参考往期文章或者在评论区交流你想法和心得,欢迎一起探索前端。

    4.9K30

    Spring Boot2 系列教程(三十八)Spring Security 非法请求直接返回 JSON

    Spring Security 结合 OAuth2 不过,今天要和小伙伴们聊一聊 Spring Security 中另外一个问题,那就是在 Spring Security 中未获认证请求默认会重定向登录页...,但是在前后端分离登录中,这个默认行为则显得非常不合适,今天我们主要来看看如何实现未获认证请求直接返回 JSON ,而不是重定向登录页面。...举个简单例子,例如我想访问 /hello 接口,但是这个接口需要登录之后才能访问,现在没有登录就直接去访问这个接口了,那么系统会给我返回 302,让去登录页面,在前后端分离中,后端一般是没有登录页面的...因为前后端分离开发中,前端我们一般在 NodeJS 上启动,然后前端所有请求通过 NodeJS 做请求转发,现在服务端直接把请求地址告诉浏览器了,浏览器就会直接去访问 http://localhost...结语 好了,一个小小重定向问题和小伙伴们分享下,不知道大家有没有看懂呢?这也是最近在重构微人事时候遇到问题。

    1.3K40

    IIS进行URL重写——实现https重定向,文件类型隐藏访问重写,nodejs等服务重写等等

    1、先来讲一讲为什么我们要使用url重写这个东西 2、因为学习后端是nodejs,然后发现nodejs一个非常让人难受事,就是它监听端口不是80和443时,你访问网页需要输入端口,这样很不友好,...9、服务器变量可以不写,操作类型可以因情况而定,http站点转向https时一般使用重定向,其余一般为重定向 重写URL:比如博客是在nodejs搭建服务上,并且监听本地3001端口时,填写http:...10、点击右侧栏应用即可,当应用显示灰色时,证明有必填项没有填写,所以无法应用,这里也就重写完毕,下面是例子 五、例子 1、http重定向至https 填写内容 -> 名称:随意 模式:(.*) ;代表全部...逻辑分组全部匹配,任意匹配是满足一个条件即可进行下面处理 操作类型:重定向 重定向URL:https://www.example.com/{R:1} 结果相当于 访问 http://www.example.com...六、尾记 1、本文记录目的只是为了防止遗忘 2、当然url重写不可能这么简单使用,只是需求多少,研究多少,这里只是基本使用,想要更复杂,则自己可以去官方文档查看,研究 3、本博客可以随意转载,但是请在博文顶部写上来源

    12.7K31

    增强你 Fetch,或许你该考虑考虑 ultrafetch 了

    为了理解这个库工作原理,用一个示例简单给大家说明一下: 假设作为 API 端点业务逻辑一部分,你 Node.js 后端需要发出一个 HTTP GET 请求来获取一些数据。...首先,尽管它被称为 “Ultra Fetch”,但它只增加了一个重要 Fetch 功能。 接下来,将提供一些示例来演示 ultrafetch。...如何使用 ultrafetch 添加缓存 安装 ultrafetch 和 node-fetch 使用以下命令将 ultrafetch 添加到项目的依赖项中: npm install ultrafetch...然而,当进行重复请求时,你就会看到增强版 Fetch 能力了: 在第一次请求之后,响应对象将被添加到内部内存中 Map 缓存中。...具体来说,它对 fetch header 和 body 对象进行散列,并将结果字符串连接到 : 中。 结尾 最后,总结一下。

    20810
    领券