节点重定向到一个数组的随机链接

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)基本上它告诉客户端“[...] 重定向可能会偶尔改变 [. ..]"

以上是关于节点重定向到一个数组的随机链接的主要内容,如果未能解决你的问题,请参考以下文章

在选择电台,重定向到一个链接

页面未重定向到给定链接 Mandrill

我希望能够将用户重定向到 WebView 中的特定链接

自动重定向到扫描的链接

使用基本身份验证重定向到另一个网站(在节点中)

spring mvc 重定向路径和所有子节点到另一个域