404 из отсутствующего Accept: text/html
заголовка. Добавьте этот заголовок, и вы получите 200.
Как отметил DublinDev , он также не работает в Postman, так что это не проблема request
. Но это работает в Chrome. Это пахнет проблемой заголовков. Конечно же, после того, как я немного поигрался с заголовками, я сузил его до этого.
Вот конечный продукт:
const statusCode = await new Promise<number>((resolve, reject) => {
Request({
url: href,
headers: {
'Accept': 'text/html'
}
}, (error, response, body) => {
if (error) {
reject(error);
} else {
resolve(response.statusCode);
}
});
});
Итак, подведем итог: этот заголовок необходим, поскольку сайт Angular размещается на сервере dev Angular во время тестов E2E, и сервер dev, по-видимому, имеет эту причуду.