Ошибка "ERR_CONNECTION_REFUSED" и "TypeError: NetworkError when attempting to fetch resource" обычно указывает на то, что удаленный сервер не доступен по указанному адресу или порту.
В вашем коде, вы указываете порт
3000
в запросе на
https://example.com:3000/server/
, но в коде сервера, вы слушаете порт
3000
на хосте
example.com/server
.
Чтобы исправить это, вам нужно изменить значение
host
в коде сервера на
example.com
и удалить
/server
из пути запроса:
const host = 'example.com';
const port = 3000;
// ...
app.post('/server', (req, res) => { // изменить путь на /server
// ...
});
Дополнительное, не обязательное:
Кроме того, вы используете режим "no-cors" в запросе fetch, что означает, что запрос будет выполнен без использования CORS (Cross-Origin Resource Sharing), что может привести к блокировке запроса браузером из-за политики безопасности CORS. Если вы контролируете и настраиваете сервер, на который отправляете запрос, лучше использовать стандартный режим "cors" или "same-origin".
const response = await fetch(
'https://example.com/server/', // изменить путь на /server
{
method: 'POST',
// mode: 'no-cors', // удалить эту строку
headers: {
'Content-Type': 'text/plain',
},
body: mail,
}
);
После проверки параметров host, port и внесения изменений, ваш POST запрос должен пройти успешно.