节点重定向到一个数组的随机链接
Posted
技术标签:
【中文标题】节点重定向到一个数组的随机链接【英文标题】:Node redirection to random link of one array 【发布时间】:2019-09-02 04:07:57 【问题描述】:我在节点中有一个脚本,我想自动重定向到我在一个数组中拥有的随机链接,页面是白色的,当我放置 maths.random 函数时不会重定向
这是我的代码:
const http = require('http');
let randURLs = [
"aaaaa",
"xxxxx",
"bbbbb"
];
const server = http.createServer(function(req, res)
if (req.method === 'POST')
console.log('post method')
else
let randNumber = Math.floor(Math.random()*randURLs.length);
res.writeHead(301,Location: 'https://www.test.com/' +
randURLs[randNumber]);
res.end();
);
server.listen(4000);
console.log("localhost:1337 ...");
我想重定向到https://www.test.com/randomValueInMyArray
谢谢, 本杰明
【问题讨论】:
【参考方案1】:我测试了你的代码,对我来说它工作得很好。
需要考虑的两件事:你做一个
server.listen(4000);
但将“localhost:1337”打印到控制台。有点混乱;-)
另一件事是,您发送的 http 状态为 301 Moved Permanently。这导致您的浏览器总是将您重定向到第一个请求的结果(即第一个随机值)。因为你说的是“永久”,如果它是永久的,你的浏览器不会期望另一个值。
【讨论】:
你好@florian,谢谢你的时间,所以我必须做些什么才能不总是重定向到第一个随机值? 看看这个答案:***.com/a/4062281/8745384(http 302 RFC 在这里:tools.ietf.org/html/rfc7231#section-6.4.3)基本上它告诉客户端“[...] 重定向可能会偶尔改变 [. ..]"以上是关于节点重定向到一个数组的随机链接的主要内容,如果未能解决你的问题,请参考以下文章