Не отправляется данные формы
при попытке отправить данные с сайта, который уже на хостинге у меня возникает проблема.
Тут у меня заменяется текст в кнопке на отправка и получается так, что на хостинге вечно так и остается процесс на стадии "Отправка".
На локальном сервере такая же проблема, но она решается, когда я прописываю 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