gpt4 book ai didi

node.js - 302 重定向阻止请求中的回调

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:43 25 4
gpt4 key购买 nike

我注意到有些网站没有关闭 302 重定向,这会导致回调无法触发。

有人知道如何解决这个问题吗?

var request = require('request');

request({url:'http://craigslist.org' }, function (error, response, body)
{
console.log("Callback Never Runs. ");
});

最佳答案

抱歉,经过进一步调查,此建议也失败了。但是,当多次尝试使用代码时,偶尔也会起作用。我想出的最好的方法是使用超时来重试。 timeout 会触发complete 事件,您可以在其中检查请求是否真正完成,如果没有则重试。

var request = require('request');

function doRequest(location) {
request({
timeout: 5000, // five seconds
url:location
}, function (error, response, body) {
console.log("Callback Never Runs. ");
}).on("complete", function(response) {
if(!response.complete) setImmediate(function() {
doRequest(location);
});
});
}

doRequest('http://craigslist.org');

您可以进一步扩展,在抛出错误之前仅重试 X 次。

----原文----

这可能是请求中的错误,因为在本例中 craigslist.org 发送了所有 302 错误。但是如果您将 followAllRedirects: true 添加到您的选项中,它就可以工作。

var request = require('request');

request({
followAllRedirects: true,
url:'http://craigslist.org'
}, function (error, response, body) {
console.log("Callback Never Runs. ");
});

关于node.js - 302 重定向阻止请求中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com