Не отправляется данные формы

при попытке отправить данные с сайта, который уже на хостинге у меня возникает проблема.

Тут у меня заменяется текст в кнопке на отправка и получается так, что на хостинге вечно так и остается процесс на стадии "Отправка".

На локальном сервере такая же проблема, но она решается, когда я прописываю node server.js.

Соответственно как мне это сделать на размещенном сайте? Извиняюсь за корявую лексику, объяснил своими словами)

const ContactForm = () => {

const [status, setStatus] = useState("Отправить");

const handleSubmit = async (e) => {
  e.preventDefault();
  setStatus("Отправка...");
  const { name, email } = e.target.elements;
  let details = {
    name: name.value,
    email: email.value,
  };

  let response = await fetch("http://localhost:5000/contact", {
    method: "POST",
    headers: {
      "Content-Type": "application/json;charset=utf-8",
    },
    body: JSON.stringify(details),
  });

  setStatus("Отправить");
  let result = await response.json();
  alert(result.status);
};

return (
<FORM onSubmit={handleSubmit}>
  <div>
    <INPUT type="text" placeholder='Введите свое имя' id="name" required />
  </div>
  <div>
    <INPUT type="number" placeholder='Введите номер телефона' id="email" required />
  </div>
  <BUTTON type="submit">{status}</BUTTON>
</FORM>
);
};

export default ContactForm;

В данном коде в переменной пароль я специально поставил звездочки, в проекте он прописан, на это не обращайте внимание...

const express = require("express");
const router = express.Router();
const cors = require("cors");
const nodemailer = require("nodemailer");

const app = express();
app.use(cors());
app.use(express.json());
app.use("/", router);
app.listen(5000, () => console.log("Server Running"));

const contactEmail = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: "[email protected]",
    pass: "*********************",
  },
});

contactEmail.verify((error) => {
  if (error) {
    console.log(error);
  } else {
    console.log("Ready to Send");
  }
});

router.post("/contact", (req, res) => {
  const name = req.body.name;
  const email = req.body.email;
  const mail = {
    from: name,
    to: "[email protected]",
    subject: "Contact Form Submission",
    html: `<p>Name: ${name}</p>
           <p>Email: ${email}</p>`,
  };
  contactEmail.sendMail(mail, (error) => {
    if (error) {
      res.json({ status: "Ошибка. Попробуйте снова!" });
    } else {
      res.json({ status: "Данные успешно отправлены!" });
    }
  });
});

Консоль выдает ошибку:

ContactForm.js:14 POST http://localhost:5000/contact net::ERR_CONNECTION_REFUSED

Uncaught (in promise) TypeError: Failed to fetch

Ответы (0 шт):