首页 > 解决方案 > 如何在 Express 中使用 res.send 向客户端发送数据以使用 jQuery 进行 ajax 调用

问题描述

所以,我有一个时事通讯表单,我想在发布请求完成后显示一条消息,我尝试使用 jQuery ajax 调用来执行此操作。我在服务器端做了一个 res.send("OK") 但 res.send 显示在浏览器中,我不希望它显示我只想将它发送到客户端,以便我可以处理请求。

这是代码:

index.js

router.post("/newsletter", (req, res) => {
    let newsletterEmail = req.body.newsletterEmail;
    console.log("Data: ", req.body.newsletterEmail);

    let mailOptions = {
        from: newsletterEmail,
        to: "myemail@email.com",
        subject: " Newsletter",
        html: "<h3>Newsletter Contact Email: " + newsletterEmail + "</h3>"
    }

    smtpTransport.sendMail(mailOptions, (error, response) => {
        if (error) {
            console.log(error)
            res.status(500);
        } else {
            console.log("Successfully sent email.");
            res.send("OK");
        }
    })
})

main.js

// Newsletter Form
  $.ajax({
    type: "POST",
    url: "/newsletter",
    data: $("#newsletterEmail"),
    success: function(msg){
      if (msg == "OK") {
        $("#success-sub-msg").css("opacity", "1");
      }
    }
  });

标签: jquerynode.jsajaxexpress

解决方案


推荐阅读