标签导航:

将短 url 转换为长 url 可能是 web 开发中的一项常见任务,尤其是在处理重定向时。在这篇文章中,我们将探讨如何使用 javascript 和两个流行的库来实现这一点:axios 和 fetch api。我们将演示如何从缩短的 tiktok 链接中检索完整的 url。

使用 axios

axios 是一个适用于浏览器和 node.js 的基于 promise 的 http 客户端。下面是如何使用 axios 将短 url 转换为长形式的简单示例。

axios("https://vt.tiktok.com/zs6yxcpvq/")
  .then(res => console.log(`full url with axios: ${res.request.res.responseurl}`))
  .catch(err => console.error(err));
// axios 的完整 url:https://www.tiktok.com/@bigthink/video/7345607663322926366

说明:

  • 我们使用 axios() 向短 url 发起 get 请求。
  • 成功后,响应对象包含一个属性 res.request.res.responseurl,该属性在执行任何重定向后保存完整的 url。
  • 如果请求期间出现错误,则会在 catch 块中捕获错误,并记录错误消息。

使用获取

fetch api 提供了一种更现代的方式来发出网络请求。以下是如何使用它来达到相同的结果:

fetch("https://vt.tiktok.com/ZS6yXCpvq/")
  .then(res => console.log(`Full URL with Fetch: ${res.url}`))
  .catch(err => console.error(err));

// 带 fetch 的完整 url:https://www.tiktok.com/@bigthink/video/7345607663322926366

说明:

  • fetch() 函数向指定的 url 发起请求。
  • res.url 属性包含任何重定向后的最终 url。
  • 与 axios 类似,错误在 catch 块中处理。

结论

axios 和 fetch 都提供了在 javascript 中将短 url 转换为长 url 的简单方法。虽然 axios 可能提供拦截器和自动 json 数据转换等附加功能,但 fetch 内置于现代浏览器中,对于基本请求非常强大。根据您的项目需求,您可以选择任一方法来处理 url 重定向。