大家好,我在向 URL 发送请求时遇到问题,该请求在收到301
后重定向到另一个 URL。
request('http://www.tanitbar.ru/menu.aspx?cat=6', function (error, response, body) {
console.log('error:', error);
console.log("response", response);
});,
1) 第一个响应包含等于 301 的状态码(这意味着我们应该从location
标头重定向到 URL,但它包含编码的俄罗斯字母: СалаÑÑ
2) 由于此 URL ( http://www.tanitbar.ru/СалаÑÑ
) 不存在,我收到404
错误
期望得到页面的 html 正文,状态码等于200
我现在得到404
curl
工作正常并在收到 301 后重定向到另一个 URL
curl "http://www.tanitbar.ru/menu.aspx?cat=6" -L
,(curl 默认不重定向,因此我们需要传递-L
选项)
我想我们应该在重定向之前以某种方式解码位置标头(顺便说一句,我无法手动解码)
无法从 JS 接收页面内容。
| 软件 | 版本
| ---------------- | --------
| 请求 |^2.83.0
| 节点 |8.7.0
| npm |5.4.2
| 操作系统 | Linux, Ubuntu
提前致谢!
我们甚至对该标头的编码做任何事情吗? 我认为我们只是从 Node.js 的解析器中得到它。
@mikeal https://github.com/nodejs/node/issues/17390可能相关
顺便说一句, Buffer.from(location, 'binary').toString('utf8')
对我有用。
此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动,它将被关闭。 感谢你的贡献。
最有用的评论
@mikeal https://github.com/nodejs/node/issues/17390可能相关
顺便说一句,
Buffer.from(location, 'binary').toString('utf8')
对我有用。