如何知道我将被重定向到的 url? [nodejs] [节点获取]
Posted
技术标签:
【中文标题】如何知道我将被重定向到的 url? [nodejs] [节点获取]【英文标题】:How to know the url that I will be redirected to? [nodejs] [node-fetch] 【发布时间】:2020-10-15 00:33:29 【问题描述】:我正在尝试从谷歌云中的 url 加载 JSON 文件。我正在使用 node-fetch 包,它可以正常工作几个小时。问题是 google 经常更改重定向的 url。如何向我将被转发到的 URL 发出获取请求?或者至少知道我将被转发到哪个网址?我看到还有一个名为 request 的包,但它已被弃用。
这是代码
var express = require('express');
var router = express.Router();
var fetch = require('node-fetch');
router.get('/', async (req, res) =>
const url = 'https://storage.cloud.google.com/blablabla/config.json';
fetch(url)
.then((res) =>
if (res.ok)
return res.json();
)
.then((data) => res.send( data ))
.catch((err) => res.send(err));
);
module.exports = router;
【问题讨论】:
我放弃了这种方法并将这个 json 文件保存在本地,因为它非常小。我想 thr0n 的回答会奏效! node-fetch 默认遵循重定向 (github.com/node-fetch/node-fetch#options)。请注意,您正在使用 fetch 响应覆盖路由器设置的“res”。 'res' 【参考方案1】:您可以在响应标头中查找最终 URL。在您的情况下,res.headers.get('location')
应该可以解决问题。
【讨论】:
以上是关于如何知道我将被重定向到的 url? [nodejs] [节点获取]的主要内容,如果未能解决你的问题,请参考以下文章