ответить на запрос поста Ajax с бэкэндом nodejs - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать форму на своем сайте, используя jquery и ajax.в бэкэнде у меня установлен экспресс.когда я отправляю запрос на почту / mail и все в порядке, я хочу отправить json обратно на страницу контактов.Как я могу это сделать?

Я построил интерфейс и сервер, но не могу понять, как отправить статус успеха или что-то в этом духе.

это мой сценарий сервера:

const express = require("express");
const app = express();
const port = process.env.PORT || 5000;
const bodyParser = require("body-parser");

//Here we are configuring express to use body-parser as middle-ware.
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.get("/", (req, res) => {
  res.sendFile(__dirname + "/contact.html");
});
app.post("/mail", (req, res) => {
  //here i want to respond with success or error to the front end

});
app.get("*", (req, res) => {
  res.send("hello");
});



app.listen(port, () => console.log(`listening on http://localhost:${port}`));

это мой сценарий интерфейса:

$(function() {

    // Get the form.
    var form = $('#contact-form');

    // Get the messages div.
    var formMessages = $('.form-messege');

    // Set up an event listener for the contact form.
    $(form).submit(function(e) {
        // Stop the browser from submitting the form.
        e.preventDefault();

        // Serialize the form data.
        var formData = $(form).serialize();

        // Submit the form using AJAX.
        $.ajax({
            type: 'POST',
            url: $(form).attr('action'),
            data: formData
        })
        .done(function(response) {
            // Make sure that the formMessages div has the 'success' class.
            $(formMessages).removeClass('error');
            $(formMessages).addClass('success');

            // Set the message text.
            $(formMessages).text(response);

            // Clear the form.
            $('#contact-form input,#contact-form textarea').val('');
        })
        .fail(function(data) {
            // Make sure that the formMessages div has the 'error' class.
            $(formMessages).removeClass('success');
            $(formMessages).addClass('error');

            // Set the message text.
            if (data.responseText !== '') {
                $(formMessages).text(data.responseText);
            } else {
                $(formMessages).text('Oops! An error occured and your message could not be sent.');
            }
        });
    });

});

как я могу инициировать функцию fail или done в запросе ajax?

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