我有一个 nodejs 应用程序,用户可以在其中提供一个外部 url,如 www.google.com,或指向 webapp 页面之一的 url,如 A/B/C.aspx。
为了确保网址有效,我一直在做:
const request = require("request");
request(url, (err, response) => {
if (err || (response && response.statusCode !== 200)) {
// not valid, though maybe I should be more lenient and allow codes < 400
}
else {
// valid
}
});
但是,我遇到了一个问题,即指向不存在的 webapp 页面的 url 会通过。我发现这是因为无效的 url 被重定向到有效的 url,并response.statusCode
设置为 200。
url
为了解决这个问题,我通过将参数替换为 object来关闭重定向{url: url, followRedirect: false}
,但这只会导致response.statusCode
设置为 302。
我不仅希望它不重定向,而且希望它验证提供的 url,以便将statusCode
设置为404
if the page is not found 而不是302
.
这可以做到吗?